我试图为克隆应用程序安装PostgreSQL-9.3-postGIS-2.1或PostgreSql-9.1-Postgis-2.1由Python构建的Docker映像:2.7图像。
我查看了图像,发现它位于Ubuntu 14.04.1图像上。我试图在Xubuntu 14.04.2 VM上安装PostGis,一切都还可以。
我如何使安装工作正常?
dockerfile非常容易:
FROM python:2.7
RUN mkdir /workspace
RUN mkdir /data
WORKDIR /workspace
RUN apt-get update
RUN apt-get install postgresql postgresql-common postgresql-9.3-postgis-2.1
错误代码也很正常:
E: Unable to locate package postgresql-9.3-postgis-2.1
E: Couldn't find any package by regex 'postgresql-9.3-postgis-2.1'
请提供更多信息,例如Dockerfile和您遇到的错误。
从您的评论中,您似乎在PostgreSQL库之前加载Python库。我认为您的Python应用需要PostgreSQL访问,并且它使用PostgreSQL C库周围的Python包装器之一。
如果是这种情况,请在安装Python库之前安装PostgreSQL库,并且不要忘记添加-dev库。
在这种情况下,我要做的是制作最小的Docker映像,在容器中启动根外壳,然后手动进行安装,记笔记并使用它们来更新Docker文件。另外,您可以运行
$ docker exec -t -i bash -i
要在容器中获得外壳,然后尝试需要做什么。
感谢所有试图帮助我的人!尽管我最终自己修复了这个问题,但是很简单的Dockerfile没有错,但是我选择的图像不是典型的Ubuntu映像,Docker Office使用buildpack-deps:jessie
代替ubuntu:14.04
图像:https://github.com/docker-library/python/blob/master/2.7/dockerfile
在Docker和Ubuntu VM中引起了不同的行为。
最后,我从Ubuntu:12.04
构建了一个Python图像并修复了此问题。