. Мне нужно создать образ докера postgresql 11 с поддержкой хеш-функции sha3-512. По умолчанию официальные образы докеров postgres не поддерживают это. У меня уже есть несколько систем, использующих официальные образы докеров. Мне нужен новый образ, который работает точно так же, как и официальный, за исключением того, что в нем есть поддержка этих хеш-функций. Моя идея состояла в том, чтобы создать копию официального файла Dockerfile и изменить его.
Согласно разделу примечаний к конфигурации здесь:https://www.postgresql.org/docs/11/pgcrypto.html#id-1.11.7.34.10хеш-функции SHA224/256/384/512 поддерживаются только в том случае, если postgresql был сконфигурирован и собран с помощью--with-openssl
Я скопировал Dockerfile и скрипт точки входа отсюда:
https://github.com/docker-library/postgres/tree/master/11/stretch
а потом я застрял. Я понятия не имею, как и где добавить «--with-openssl». Я подозреваю, что конфигурация и компиляция происходят в этом разделе :
# build.deb files from upstream's source packages (which are verified by apt-get)
apt-get update; \
apt-get build-dep -y \
postgresql-common pgdg-keyring \
"postgresql-$PG_MAJOR=$PG_VERSION" \
; \
DEB_BUILD_OPTIONS="nocheck parallel=$(nproc)" \
apt-get source --compile \
postgresql-common pgdg-keyring \
"postgresql-$PG_MAJOR=$PG_VERSION" \
; \
, но на данный момент я не знаю, что делать или что менять.
Сама ошибка такая
select digest('test','sha3-512')
SQL Error [22023]: ERROR: Cannot use "sha3-512": No such hash algorithm
Вроде бы никаких дополнительных хеш-алгоритмов не добавлено:
postgres=# \df digest
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+------+------------------+---------------------+------
(0 rows)
postgres=# select * from pg_available_extensions where name='pgcrypto';
name |default_version|installed_version|comment |
--------+---------------+-----------------+-----------------------+
pgcrypto|1.3 |1.3 |cryptographic functions|