Мне нужно создать образ докера 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». Подозреваю, что конфигурация и компиляция происходит в этом разделе:
# создавать файлы .deb из пакетов с исходным кодом основной ветки разработки (которые проверяются с помощью apt-get)
получить обновление; \
apt-get build-dep -y \
postgresql-общий pgdg-брелок \
"postgresql-$PG_MAJOR=$PG_VERSION" \
; \
DEB_BUILD_OPTIONS="nocheck parallel=$(nproc)" \
apt-получить исходный код --скомпилировать \
postgresql-общий pgdg-брелок \
"postgresql-$PG_MAJOR=$PG_VERSION" \
; \
но на данный момент, я не знаю, что делать, или что изменить.
Сама ошибка такая
выберите дайджест ('тест', 'sha3-512')
Ошибка SQL [22023]: ОШИБКА: невозможно использовать «sha3-512»: нет такого алгоритма хэширования
Вроде бы никаких дополнительных хеш-алгоритмов не добавлено:
postgres=# \df дайджест
Список функций
Схема | Имя | Тип данных результата | Типы данных аргумента | Тип
--------+------+----+--------------- ------+------
(0 строк)
postgres=# выберите * из pg_available_extensions, где name='pgcrypto';
имя |версия_по умолчанию|установленная_версия|комментарий |
--------+---------------+---+------- --+
pgcrypto|1.3 |1.3 |криптографические функции|