ARG와 ENV의 차이

Dockerfile Syntax | The difference of ARG and ENV in Dockerfile
이민석's avatar
Jun 08, 2024
ARG와 ENV의 차이

개요

ARG와 ENV는 모두 컨테이너에 변수를 선언할때 사용하는 Dockerfile 명령어입니다. 이 두 명령어는 Dockerfile 내부에서는 꽤 비슷하다고 느껴집니다.

ARG & ENV 작동 원리

  • ARG는 Docker Container Image를 빌드하는 단계에서 사용됩니다.

  • ENV는 Docker Container Image가 실행되는 단계에서 사용 됩니다.

따라서 ARG는 docker build 이후에는 사용할 수 없습니다. 또한 docker run 이후의 running container에도 ARG에 엑세스할 수 없습니다.

아래의 그림을 통해 손쉽게 이해할 수 있습니다.

Dockerfile 안의 ARG & ENV

Dockerfile 안에서의 ARG와 ENV는 아래와 같이 작성됩니다.
보는 것처럼 외관으로는 큰 차이가 존재하지 않습니다.

ARG VAR_A 5
ENV VAR_B 6

RUN echo $VAR_A
RUN echo $VAR_B

하지만 앞서 설명한 바와 같이 ENV로 선언된 변수에는 --build-arg VAR_NAME=VAR_VALUE 을 통해서 변경할 수 있습니다.

참고 자료

Share article

Unchaptered