🖥

docker compose での環境変数切り替えは .env ファイルではなく environment に直接記述した方が分かりやすいんじ

2024/07/08に公開

docker compose の例

次のように書いておけば、何かと使いやすい気がする

  • XXX_ENV=yeah docker compose up のようにコマンドレベルで環境変数指定が出来る
  • local (ホスト端末) で 環境変数指定なしで docker compose up した場合の固定値も指定できる
version: '3.8'
services:
  xxx_service:
    ...
    environment:
      # docker compose up 実行時に環境変数指定できるもの
      # ブレースの中は ${localで指定可能な環境変数名:-無指定の場合の固定値} という記法
      - 'XXX_ENV=${XXX_ENV:-foo}'
      # docker compose up 実行時に環境変数指定させていない固定値のもの
      - 'YYY_ENV=bar'

環境変数ファイルを使う例

.env.development のように環境変数指定用のファイルを読み込ませておいて、そのファイル自体は gitignore しておく運用を多く見かける

だがこの方法だとファイルの状態によって開発者間で環境の差異が生じたり、どこで環境変数をコントロールしているのかがわかりづらかったり、という欠点がある

version: '3.8'
services:
  xxx_service:
    ...
    env_file:
      - .env.development

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

プロフィール・経歴

https://github.com/YumaInaura/YumaInaura

公開日時

2024-07-08

https://qiita.com/YumaInaura/items/87729ba620d1606d33a9

Discussion