Documents

ARG 와 ENV 의 차이점
docker environment build args

ARG

# ARG <name>[=<default value>]
ARG centos_version=7
ARG nginx_version
  • 이미지 빌드를 위해 Dockerfile 내에서 사용하기 위한 값.

  • 빌드 시점에서 사용, 그러므로 설정을 유지하지 않으려면 ARG 사용

  • docker build 명령어에 --build-arg 옵션으로 전달하거나 덮어쓸 수 있음

    docker build . \
      --no-cache \
      -t nginx:latest \
      -t nginx:${nginx_version}-$(date +"%y%m%d") \
      --build-arg CENTOS_VERSION=${centos_version} \
      --build-arg NGINX_VERSION=${nginx_version} \
      --build-arg NVAUTH_VERSION=${nvauth_version}
  • FROM 이전에 있는 ARGFROM 에서만 사용 가능하다. 즉, 내부에서 사용하기 위해서 한번 더 선언해야 한다.

    ARG centos_version
    FROM centos${centos_version} AS builder
    
    ARG centos_version # 안에서 사용하려면 또 ARG를 선언해야 한다.
    ENV CENTOS_VERSION=${centos_version}

ENV

# ENV <key> <value>
# ENV <key>=<value> ...
ENV nginx_version \
    centos_version
  • 이미지 빌드를 위해 Dockerfile 내에서 사용하기 위한 값

  • 런타임 시점에서 사용

  • docker run 명령어에 --e or --env <key>=<value> 옵션으로 전다랗거나 덮어쓸 수 있음

  • docker inspect를 사용하여 값 확인 가능

docker