概要
Linuxコンテナの場合はdocker-composeから環境変数をDockerfileに渡す方法がすぐに見つかりますが、Windowsコンテナの場合は渡す方法が分かりにくかったのでまとめておきます。
方法
Dockerfileに渡したい環境変数は PARAMETER
とします。
まずはDockerfileにARGで指定しておきます。 ${PARAMETER}
の箇所にはdocker-composeから渡される環境変数が展開されます。
Dockerfile
FROM microsoft/windowsservercore:ltsc2016
ARG PARAMETER
ADD ${PARAMETER} .
次にdocker-compose.ymlではbuildのargsに環境変数を指定しておきます。
docker-compose.yml
version: '3.7'
services:
sample:
build:
context: ./sample
args:
- PARAMETER=${PARAMETER}
最後にdocker-composeの呼び出しです。
setで環境変数を設定してdocker-composeを呼び出します。
ここでは abc
という値がDockerfileの ${PARAMETER}
で展開されます。
コマンドプロンプト
set PARAMETER=abc
docker-compose up