メールAPIキーをapp.ymlにハードコーディングせずにコンテナへ渡す

こんにちは! discourse の設定ファイル app.yml を git リポジトリで管理しています(サーバーの他の設定と一緒に)。

当然ながら、DISCOURSE_SMTP_PASSWORD を git リポジトリに入れたくないので、別途渡したいと考えています。推奨される方法はありますか?

試してみたこと:

env_file:env: を組み合わせて、別のファイルから渡そうとしました:

env_file:
  - path: /var/discourse/containers/creds.env

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en
  ...


====== creds.env ======
DISCOURSE_SMTP_PASSWORD="..."

しかし、docker が ENV 変数を認識させる方法がわかりませんでした。

``–docker-argsに渡そうとしました。sudo /var/discourse/launcher rebuild app --docker-args DISCOURSE_SMTP_PASSWORD=$DISCOURSE_SMTP_PASSWORDしかし、すぐにエラーになります:docker: invalid reference format: repository name must be lowercase.`

この素晴らしいソフトウェアに感謝します。皆さんも安全にお過ごしください :)))

「いいね!」 2

おかえりなさい!

正しい構文は次のようになると考えられます。

./launcher rebuild app --docker-args "-e DISCOURSE_SMTP_PASSWORD=\"password\""

--env-file を使用すると、これも機能するはずです。

./launcher rebuild app --docker-args "--env-file=/var/discourse/containers/creds.env"
「いいね!」 2

うまくいきました!

(後世のために:引用符の調整も少し必要でした。以下のようになります。

./launcher rebuild app --docker-args "-e DISCOURSE_SMTP_PASSWORD=$DISCOURSE_SMTP_PASSWORD"

そうしないと **ERROR** - 535 Authentication failed というエラーが発生しました。リビルドコンソールの最後の行を見ると、コマンドラインに余分な引用符のセットがあります。元の投稿とは異なり、env_file 変数宣言も引用符で囲むべきではないと思います。)

ご協力ありがとうございました。素晴らしい一日をお過ごしください!

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.