ฉันต้องการสร้างอิมเมจนักเทียบท่า 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 และสร้างด้วย --ด้วย-openssl
ฉันได้คัดลอก Dockerfile และสคริปต์จุดเข้าใช้งานจากที่นี่:
https://github.com/docker-library/postgres/tree/master/11/stretch
แล้วฉันก็ติดอยู่ ฉันไม่รู้ว่าจะเพิ่ม "--with-openssl" ได้อย่างไรหรือที่ไหน ฉันสงสัยว่าการกำหนดค่าและการคอมไพล์เกิดขึ้นที่ส่วนนี้:
# สร้างไฟล์ .deb จากแพ็กเกจต้นทางของอัปสตรีม (ซึ่งตรวจสอบโดย apt-get)
ฉลาดรับการปรับปรุง; \
apt-get build-dep -y \
postgresql-common pgdg-keyring \
"postgresql-$PG_MAJOR=$PG_VERSION" \
; \
DEB_BUILD_OPTIONS="ไม่เลือกคู่ขนาน=$(nproc)" \
apt-get แหล่งที่มา -- คอมไพล์ \
postgresql-common pgdg-keyring \
"postgresql-$PG_MAJOR=$PG_VERSION" \
; \
แต่ ณ จุดนี้ ฉันไม่รู้ว่าต้องทำอย่างไร หรือต้องเปลี่ยนแปลงอะไร
ข้อผิดพลาดของตัวเองเป็นเช่นนี้
เลือกไดเจสต์ ('ทดสอบ', 'sha3-512')
ข้อผิดพลาด SQL [22023]: ข้อผิดพลาด: ไม่สามารถใช้ "sha3-512": ไม่มีอัลกอริทึมแฮชดังกล่าว
ดูเหมือนว่าจะไม่มีการเพิ่มอัลกอริทึมแฮชเพิ่มเติม:
postgres=# \df ไดเจสต์
รายการฟังก์ชั่น
สคีมา | ชื่อ | ชนิดข้อมูลผลลัพธ์ | ชนิดข้อมูลอาร์กิวเมนต์ | พิมพ์
--------+------+---------+------------ ------+------
(0 แถว)
postgres=# เลือก * จาก pg_available_extensions โดยที่ name='pgcrypto';
ชื่อ |default_version|installed_version|ความคิดเห็น |
--------+------------------------+--------+------ ----------------+
pgcrypto|1.3 |1.3 |ฟังก์ชั่นการเข้ารหัสลับ|