我正在尝试使用 Alpine
镜像来处理一些 Postgres
数据库的创建/准备工作。
在容器中,我运行以下命令:
createdb -e -O ${DB_USER} ${DB_NAME}
psql -e -d ${DB_NAME} -c "CREATE EXTENSION postgis;"
第一行正常工作,但第二行不行。
我已经尝试过两个docker builds:
- 以下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
就足够了。
- 以下是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
吗?