docker-compose.yml は環境変数を .env
からよしなに取ってこれるので、同じ環境変数を Dockerfile に渡したいときのメモ。(すぐ忘れるからこれだけ書き残しておく)
build
内に arg:
で定義した変数を Dockerfile 内で改めて ARG 変数名
とすれば OK
.env
MY_SECRET=secret
docker-conpose.yml
version: "3" services: mycontainer: build: context: './docker/my-container' dockerfile: "Dockerfile" # Dockerfile に渡す変数 arg: # .env の MY_SECRET を SECRET として渡す - SECRET=${MY_SECRET}
./docker/my-container/Dockerfile
FROM: some-container:lasted # 渡された変数を ARG を使って明示的に定義 ARG SECRET # 変数を出力 echo "SECRET = ${SECRET}"
👇 ビルドして SECRET = echo ${SECRET}
が SECRET = secret
と表示されれば OK
$ docker compose build … 略 => CACHE [n/n] SECRET = secret
おわり₍ ᐢ. ̫ .ᐢ ₎
[参考]