コンテナに環境変数を渡す - docker-compose

docker-compose runの-eオプションで指定する

  • docker-compose runは-eオプションで環境変数を指定できる
  • -eオプションはDockerfileのENVより優先され、内容を上書きする

docker-compose.ymlのenvironmentで指定する

$ vi Dockerfile
FROM ubuntu
ENV "FOO" "foo1"
CMD echo DEBUG: $FOO
$ vi docker-compose.yml
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
environment:
- FOO=foo3

$ docker-compose up --build 
=> Building app ...
...
...
app_1  | DEBUG: foo3

  • docker-compose.ymlのenvironmentで環境変数を指定できる
  • environmentはDockerfileのENVより優先され、内容を上書きする

docker-compose.ymlのenv_fileで指定する

 $ vi Dockerfile
 -----------------------------
 FROM ubuntu
 ENV "FOO" "foo1"
 CMD echo DEBUG: $FOO
 -----------------------------
   
 $ vi docker-compose.yml
 -----------------------------
 version: '3'
 services:
   app:
     build:
       context: .
       dockerfile: Dockerfile
     # environment:
     #   - FOO=foo3
     env_file:
       - test.env
 -----------------------------
 
 $ vi test.env
 -----------------------------
 FOO=foo4
 -----------------------------
 
 $ docker-compose up --build 
   => Building app ...
      ...
      ...
      app_1  | DEBUG: foo4
  • docker-compose.ymlのenv_fileで環境変数を書いたファイルを指定できる
  • environmentはDockerfileのENVより優先され、内容を上書きする
  • env_fileとenvironmentが同時にあると、environmentが優先される

.envで指定する

 $ vi Dockerfile
 -----------------------------
 FROM ubuntu
 ENV "FOO" "foo1"
 CMD echo DEBUG: $FOO
 -----------------------------
   
 $ vi docker-compose.yml
 -----------------------------
 version: '3'
 services:
   app:
     build:
       context: .
       dockerfile: Dockerfile
     environment:
       - FOO=${FOO}
     # env_file:
     #   - test.env
 -----------------------------
 
 $ vi .env
 -----------------------------
 FOO=foo5
 -----------------------------
 
 $ docker-compose up --build 
   => Building app ...
      ...
      ...
      app_1  | DEBUG: foo5
  • .envファイルはdocker-composeコマンドを実行するディレクトリに置く
  • .envファイルに書いた環境変数をdocker-compose.ymlのenvironmentで指定する
  • 上の例ではFOO=${FOO}として.envのFOOをenvironmentのFOOに渡している

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS