개요
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