我使用這個Dockerfile
將它部署在openshift上。 - https://github.com/sclorg/postgresql-container/tree/master/9.5如何在uid中使用openshift安裝祕密:正確設置gid
它正常工作,直到我啓用ssl=on
,並通過注入量的server.crt
和server.key
文件到Postgres吊艙安裝選項。
祕密就像
$ oc secret new postgres-secrets \
server.key=postgres/server.key \
server.crt=postgres/server.crt \
root-ca.crt=ca-cert
音量被創建爲波紋管和附連到postgres的給定BuidlConfig
創建。
$ oc volume dc/postgres \
--add --type=secret \
--secret-name=postgres-secrets \
--default-mode=0600 \
-m /var/lib/pgdata/data/secrets/secrets/
問題是secret.crt
和secret.key
文件的安裝文件被root
用戶擁有,但postgres
期待它應該由postgres
用戶所擁有。因爲postgres服務器不會出現並說這個錯誤。
等待服務器啓動.... FATAL:無法加載服務器 證書文件「/var/lib/pgdata/data/secrets/secrets/server.crt」: 權限被拒絕停止等待pg_ctl:無法啓動服務器
如何插入卷並更新其中的文件uid:guid
?
感謝您的回答。其實我也是在想你的第二個解決方法。容器入口點現在更新爲通過openshit(通過ENV)裝載祕密文件並將其複製到另一個位置,因此文件權限問題不會再出現。很好,您指出了SCC方法,需要閱讀更多內容。謝謝哈維爾。 –