Tôi cần tạo một hình ảnh docker postgresql 11 có hỗ trợ hàm băm sha3-512.Theo mặc định, hình ảnh docker postgres chính thức không hỗ trợ điều này. Tôi đã có một số hệ thống sử dụng hình ảnh docker chính thức. Tôi cần một hình ảnh mới hoạt động chính xác như hình ảnh chính thức, ngoại trừ việc nó có hỗ trợ cho các hàm băm này. Ý tưởng của tôi là tạo một bản sao của Dockerfile chính thức và sửa đổi nó.
Theo phần ghi chú cấu hình ở đây: https://www.postgresql.org/docs/11/pgcrypto.html#id-1.11.7.34.10 các hàm băm SHA224/256/384/512 chỉ được hỗ trợ nếu postgresql được cấu hình và xây dựng với --with-openssl
Tôi đã sao chép Dockerfile và entrypoint script từ đây:
https://github.com/docker-library/postgres/tree/master/11/stretch
và sau đó, tôi bị mắc kẹt. Tôi không biết làm thế nào hoặc ở đâu để thêm "--with-openssl". Tôi nghi ngờ rằng việc cấu hình và biên dịch xảy ra ở phần này:
# xây dựng các tệp .deb từ các gói nguồn của thượng nguồn (được xác minh bởi apt-get)
cập nhật apt-get; \
apt-get build-dep -y \
postgresql-common pgdg-keyring \
"postgresql-$PG_MAJOR=$PG_VERSION" \
; \
DEB_BUILD_OPTIONS="nocheck song song=$(nproc)" \
nguồn apt-get --compile \
postgresql-common pgdg-keyring \
"postgresql-$PG_MAJOR=$PG_VERSION" \
; \
nhưng tại thời điểm này, tôi không biết phải làm gì, hoặc thay đổi điều gì.
Bản thân lỗi là như thế này
chọn thông báo ('kiểm tra','sha3-512')
Lỗi SQL [22023]: LỖI: Không thể sử dụng "sha3-512": Không có thuật toán băm như vậy
Dường như, không có thuật toán băm bổ sung nào được thêm vào:
postgres=# \df thông báo
Danh sách các chức năng
Lược đồ | Tên | Kiểu dữ liệu kết quả | Kiểu dữ liệu đối số | Loại
--------+------+------------------+------------ ------+------
(0 hàng)
postgres=# select * from pg_available_extensions where name='pgcrypto';
tên |default_version|install_version|bình luận |
--------+----------------+-----------------+------- ----------------+
pgcrypto|1.3 |1.3 |chức năng mật mã|