0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

docker-composeでDockerfileに変数/ターゲット(マルチステージビルド)を渡す

Last updated at Posted at 2021-04-04

■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'
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?