Не могу использовать PostGIS на альпийском изображении - PullRequest
2 голосов
/ 22 января 2020

Я пытаюсь использовать образ Alpine, чтобы позаботиться о создании / подготовке Postgres db. Внутри контейнера я выполняю следующие команды:

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

Первая строка работает нормально, а вторая - НЕ.

Я пробовал это с двумя docker сборками:

  1. Следующий файл Docker:
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 прямо как кто-то в этом форуме настаивал на том, что apk add -U postgresql на голом Alpine изображении должно быть достаточно.

Следующий 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]

Как на земле :)), можно ли использовать PostGIS с изображением Alpine? Нужно ли использовать другие версии образов или устанавливать PostGIS по-другому?

1 Ответ

1 голос
/ 22 января 2020

Как указано в документации , раздел «Дополнительные расширения»:

При использовании вариантов Alpine любое расширение postgres, не указанное в postgres -контриб, должно быть скомпилированным в ваше собственное изображение (опять же, см. github.com/ptable/docker-postgis для конкретного примера).

Для основанного на Debian вот docker image:

https://github.com/appropriate/docker-postgis/blob/f6d28e4a1871b1f72e1c893ff103f10b6d7cb6e1/10-2.4/Dockerfile

Если вы хотите связать Postgis с PostgreSQL Альпийским изображением, вы его построили.

...