■docker-composeからDockerfileに値を渡す
version: '3.7'
services:
app:
build:
context: .
args:
ARG_1: "test"
FROM XXX
# ※ ARG 【変数名】 を記載しないと使用できません
ARG ARG_1
RUN echo ${ARG_1}
# test が出力されます。
■マルチステージビルド
version: '3.7'
services:
app:
build:
context: .
target: dev
# 共通の設定を記述
ARG SRC=/var/www/html/
####################
# 共通
####################
FROM XXX as build
# 「FROM XXX as build」で「SRC」変数を使用したい場合は記載します
ARG SRC
# この配下に共通の dev/prod 共通の処理を記述します。
RUN echo '共通'
####################
# devの処理
####################
FROM build as dev
# 「FROM build as dev」で「SRC」変数を使用したい場合は記載します
ARG SRC
# 「target」で「dev」が指定された際のコンテナ環境の処理を記述します。
# ※「target」が「prod」時でもbuild時に処理は走ります(※作成されたコンテナ時には反映されません)
RUN echo 'dev'
####################
# prodの処理
####################
FROM build as prod
# 「FROM build as prod」で「SRC」変数を使用したい場合は記載します
ARG SRC
# 「target」で「prod」が指定された際のコンテナ環境の処理を記述します。
# ※「target」が「dev」時は処理が走りません
RUN echo 'prod'