私はこれを使ってopenshiftに展開します。Dockerfile
- https://github.com/sclorg/postgresql-container/tree/master/9.5uid:gidが正しく設定されたopensshiftでマウントする方法
それは私がssl=on
を有効にしてマウントオプションをボリュームを経由してPostgresのポッドにserver.crt
とserver.key
ファイルを注入されるまで、正常に動作します。
秘密が
$ 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
を更新するにはどうすればよいですか?
答えをありがとう。実際には、2番目の回避策と同じ方法を考えていました。コンテナーのエントリポイントが更新され、openshit(ENV経由)でマウントされた秘密ファイルを取得し、別の場所にコピーするため、ファイルのアクセス権の問題は再び発生しません。あなたがSCCの方法を指摘したことをよく知って、それをもっと読む必要があります。 Javierに感謝します。 –