2015-05-05 43 views
1

我试图为克隆的应用程序安装postgresql-9.3-postgis-2.1或postgresql-9.1-postgis-2.1,但是我只能得到postgresql- 9.4-postgis-2.1在我的Ubuntu Docker镜像上,它是由python:2.7镜像构建的。无法在Ubuntu 14.04.1 Docker容器上获取​​postgresql-9.3-postgis-2.1

我看着图像,发现它在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' 
+0

@Michael Dockerfile是致命的简单,我只是想要一些文件夹,并从requirements.txt安装python库。然后,我尝试在将它写入Dockerfile之前手动安装postgres的库。我试图更新和升级,并搜索缓存的库,但没有任何工作。此外,谷歌并没有给我更多的信息。 – kxxoling

回答

0

感谢所有试图帮助我的人!虽然我最终解决这个问题我自己,没有什么不对的Dockerfile这是非常简单的,但是我选择了图像不是一个典型的Ubuntu的形象,搬运工办公使用的buildpack-deps:jessie代替ubuntu:14.04图像: https://github.com/docker-library/python/blob/master/2.7/Dockerfile

这造成不同在docker和Ubuntu VM中的行为。

最后,我从Ubuntu:12.04构建了一个Python映像并解决了这个问题。

0

请提供更多的信息,像dockerfile,你会得到错误。

从您的评论中,它显示你加载的PostgreSQL库之前的python库。我假设你的python应用程序需要postgresql访问,并且它使用了postgresql C库中的一个python包装。

如果是这种情况,请在安装python库之前安装postgresql库,并且不要忘记添加-dev库。

我在这种情况下做的是制作一个最小码头镜像,在容器中启动一个根shell并手动进行安装,记录并使用它们来更新docker文件。另外,您可以运行

$搬运工EXEC -t -i庆典-i

得到容器外壳,并尝试了需要做什么。