#author("2019-04-02T05:33:04+09:00","default:ryuichi","ryuichi")
#author("2019-04-02T05:41:36+09:00","default:ryuichi","ryuichi")
* コンテナに環境変数を渡す [#da0c3105]

** コンテナに環境変数を渡す方法 [#e4dc6dc5]

- docker-compose.yml内にenvironmentキーを用意して、渡したい環境変数を記述する
- environmentキーがホワイトリスト的になっていて、ここに記述されてなければホスト側の環境変数はコンテナには渡らない
- もしくは、docker-composeコマンドのオプションで指定できる


** 例 [#jcb273fc]

*** docker-compose.yml: [#ie9df5a4]

 version: "3"
 services:
   app:
     image: alpine:latest
     environment:
       - MYENV1=1             
       - PATH                 # ホスト(Windowsとか)側の環境変数を
       - MYENV2
     command: env

version: "3"
services:
  app:
    image: alpine:latest
    environment:
        - YAML_ENV=50       # ymlファイル内で直接指定して渡す場合
        - USERPROFILE       # ホスト側の環境変数をそのまま渡す場合
        - HOST_PATH=$PATH   # ホスト側の環境変数を変数名を変えて渡す場合
        - DOT_ENV           # .envファイルに記述して渡す場合
    command: env            # コンテナ上でenvコマンドを実行して環境変数を表示してみる

*** .env: [#rde6de4d]

 DOT_ENV=100


*** 結果 [#db2ec0a5]

 CMD> docker-compose up
 
 app_1  | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 app_1  | HOSTNAME=abc123
 app_1  | YAML_ENV=50
 app_1  | HOST_PATH=C:\Windows\system32;(略)
 app_1  | USERPROFILE=C:\Users\user01
 app_1  | DOT_ENV=100
 app_1  | HOME=/root


** docker-composeコマンドのオプションで指定 [#jb79df34]

 docker-compose run -e FOO=1 -e BAR=2 app

** 参考 [#ie7ccf3c]

- https://qiita.com/kimullaa/items/f556431b8103e686f356
- https://docs.docker.com/compose/environment-variables/

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS