无法在 Ubuntu 14.04.1 Docker 容器上获取​​ postgresql-9.3-postgis-2.1

Cannot get postgresql-9.3-postgis-2.1 on Ubuntu 14.04.1 Docker container

我尝试为克隆的应用程序安装 postgresql-9.3-postgis-2.1 或 postgresql-9.1-postgis-2.1,但我只能在我的 Ubuntu docker 图像是从 python: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'

请提供更多信息,例如 docker 文件和您遇到的错误。

从您的评论看来,您在 postgresql 库之前加载了 python 库。我假设您的 python 应用程序需要 postgresql 访问权限,并且它使用 postgresql C 库周围的 python 包装器之一。

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

在这种情况下,我所做的是制作一个最小的 docker 映像,在容器中启动根 shell 并手动安装,做笔记并使用它们更新 docker 文件。或者你可以 运行

$ docker exec -t -i bash -i

在容器中得到一个 shell 并尝试需要做的事情。

感谢所有试图帮助我的人!虽然我最终自己解决了这个问题,但 Dockerfile 没有任何问题,非常简单,但我选择的图像不是典型的 Ubuntu 图像, docker 办公室使用 buildpack-deps:jessie 而不是ubuntu:14.04 图片: https://github.com/docker-library/python/blob/master/2.7/Dockerfile

它在 docker 和 Ubuntu 虚拟机中造成了不同的行为。

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