无法在Alpine镜像上使用PostGIS

6

我正在尝试使用 Alpine镜像来处理一些 Postgres 数据库的创建/准备工作。 在容器中,我运行以下命令:

createdb -e -O ${DB_USER} ${DB_NAME}
psql -e -d ${DB_NAME} -c "CREATE EXTENSION postgis;"

第一行正常工作,但第二行不行。

我已经尝试过两个docker builds:

  1. 以下Dockerfile:
FROM alpine:3.6

RUN apk add -U postgresql

COPY ./db-creator.sh /db-creator.sh
CMD ["./db-creator.sh"]

这张图片给我带来了以下错误:

CREATE EXTENSION postgis;
ERROR:  could not open extension control file "/usr/share/postgresql/10/extension/postgis.control": No such file or directory

我没有尝试直接安装PostGIS,因为在此论坛上有人坚称在裸的Alpine镜像上运行apk add -U postgresql就足够了。

  1. 以下是Dockerfile:
FROM postgres:9.6.4-alpine

RUN apk add -U postgresql
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN apk update && apk add -u postgis

COPY ./db-creator.sh /db-creator.sh
CMD ["./db-creator.sh"]

我添加了最后两个RUN语句,以遵循这里提到的内容。在这种情况下,我无法直接安装PostGIS并且会收到以下错误:
fetch http://dl-cdn.alpinelinux.org/alpine/v3.6/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.6/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
WARNING: This apk-tools is OLD! Some packages might not function properly.
v3.6.5-44-gda55e27396 [http://dl-cdn.alpinelinux.org/alpine/v3.6/main]
v3.6.5-34-gf0ba0b43d5 [http://dl-cdn.alpinelinux.org/alpine/v3.6/community]
v20200117-229-g073aaff70d [http://dl-cdn.alpinelinux.org/alpine/edge/testing]
OK: 12520 distinct packages available
WARNING: This apk-tools is OLD! Some packages might not function properly.
  postgis (missing):
ERROR: unsatisfiable constraints:
    required by: world[postgis]

我该如何在Alpine镜像中使用PostGIS呢?是需要使用不同版本的镜像或者以不同方式安装PostGIS吗?
1个回答

5

谢谢您的帮助!我按照您的建议操作,但手动安装PostGIS时遇到了问题。我已经在这里创建了另一个问题(https://dev59.com/GLjoa4cB1Zd3GeqPFNTS)。如果您能帮忙解决,我将不胜感激。 - mhyousefi
我有时间后,@mhyousefi 将会检查它。 - ROOT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接