PostgreSQL 9.6.9 в Alpine Linux (arm32v6) в контейнере Docker - как установить правильный пакет postgresql-contrib? - PullRequest
0 голосов
/ 05 июля 2018

Мне нужно установить PostgreSQL 9.6.9 с поддержкой uuid-ossp в контейнере Docker в 32-разрядной системе ARM (это QNAP NAS, ЦП: Annapurna Labs Alpine AL-314).

Я нашел arm32v6 / postgres образов и установил arm32v6/postgres:9.6.9-alpine. Это работает гладко, но не имеет пакета postgresql-contrib. Насколько я понимаю, мне нужно установить postgresql-contrib, чтобы получить поддержку uuid-ossp.

Я открыл CLI в контейнере и попытался:

# apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/armhf/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/armhf/APKINDEX.tar.gz
v3.7.0-215-g16971064c0 [http://dl-cdn.alpinelinux.org/alpine/v3.7/main]
v3.7.0-207-gac61833f9b [http://dl-cdn.alpinelinux.org/alpine/v3.7/community]
OK: 8879 distinct packages available
# apk add postgresql-contrib=9.6.9-r0
ERROR: unsatisfiable constraints:
  postgresql-contrib-10.4-r0:
    breaks: world[postgresql-contrib=9.6.9-r0]

Как мне установить правильную версию postgresql-contrib? Или я могу просто использовать postgresql-contrib-10.4-r0 с PostgreSQL 9.6.9?

Ответы [ 2 ]

0 голосов
/ 18 июля 2018

Я обнаружил, что arm32v6/postgres:9.6.9-alpine Образ Docker имеет встроенную поддержку uuid-ossp. Изображение, кажется, скомпилировано с (некоторыми?) Модулями postgres-contrib. Просмотр Dockerfile может помочь.

0 голосов
/ 05 июля 2018

Просто используйте базовый образ Alpine и полностью установите PostgreSQL из официальных пакетов Alpine: postgresql и postgresql-contrib. Последней стабильной версией Alpine, предоставляющей PostgreSQL 9.6, является версия 3.6, которая отстает от двух версий, но все еще поддерживается. Alpine v3.7 обеспечивает только 10.4.

Также не указывайте точную версию apk add. Alpine предоставляет только одну версию пакета для каждой ветви (например, v3.7, v3.8, edge). Как только мы выпустим postgresql-contrib 9.6.9-r1 или 9.6.10-r0 (например, исправление некоторых проблем безопасности), 9.6.9-r0 больше не будет доступен, и ваш apk add postgresql-contrib=9.6.9-r0 не удастся выполнить.

Эти специализированные изображения Docker, «упаковывающие» что-то, что уже должным образом упаковано в Alpine, по большей части абсолютно бесполезны и просто вызывают путаницу и проблемы. Я даже не могу сосчитать, сколько раз я отвечаю на проблему такого типа на SO.

...