728x90
Environment(Runtime)
Dockerfile 내에서 혹은 어플리케이션 코드에서 접근 가능
Dockerfile에 ENV
로 환경 변수를 설정하면 $
를 이용해 변수임을 알려 사용할 수 있다.
Dockerfile에서 PORT를 환경 변수로 등록해주었으므로 PORT 번호를 받아와 위와 같이 js 파일에서 사용할 수 있다.
--env PORT=8000
을 이용해 Dockerfile에서 직접 포트를 변경하지 않고 컨테이너를 실행하면서 포트를 변경할 수 있다.
내부 포트를 8000으로 변경시킨다는 의미이다.
환경변수 파일을 만들 수도 있다.
.env 파일에 사용할 환경변수 값을 집어넣은 후 RUN 명령시 --env-file의 옵션값으로 .env 파일을 준다.
Argument(build-time)
Dockerfile내에서만 가능하고, CMD나 다른 코드에서 접근 불가능
이미지 build시 --build-arg
옵션을 이용해 작성할 수 있다.
ARG는 컨테이너가 실행될 때 작동하는 런타임 명령이기 때문에 Dockefile 내의 CMD 명령의 인수로 사용할 수 없다.
아무 설정 없이 run 명령을 실행하면 port가 80으로 들어간다.
docker build -t feedback-node:dev --build-arg DEFAULT_PORT=8000 .
--build-arg
옵션을 이용하면 ARG 변수를 변경하여 이미지를 작성할 수 있다.
ENV는docker run(컨테이너 실행)
에서 변경할 수 있고, ARG는docker build(이미지 생성)
에서 변경할 수 있다.
728x90