我使用这个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方法,需要阅读更多内容。谢谢哈维尔。 –