Docker

[기록용] 도커 환경변수 설정하는 다양한 방법 (ENV, ARG)

피리음 2023. 3. 30. 16:12

ENV


Dockerfile 내에 환경 변수 설정하기

# 도커파일에서 환경변수 설정
...
ENV PORT 80

EXPOSE $PORT
...

커맨드로 환경 변수 설정하기

$ docker run --env PORT=8000 ...
# 혹은
$ docker run --e PORT=8000 ...

.env 작성하고 커맨드에서 환경 변수 읽기

# .env 파일
PORT=8000

# 명령어 실행
$ docker run --env-file ./.env ...

 

ARG


Dockerfile 내에 ARG 설정하기

FROM node:14

...
ARG DEFAULT_PORT=8000

ENV PORT $DEFAULT_PORT

EXPOSE $PORT
...

 

ARG 의 장점:

Dockerfile 은 건드리지 않으면서도 ENV 만 변경하여 새로운 이미지를 만들 수 있다.

# 모두 ENV는 변경되지만 도커파일은 수정하지 않아도 이미지를 만들 수 있다.

# DEFAULT_PORT가 8000포트로 된 도커파일을 생성하고 싶을 때
$ docker build --build-arg DEFAULT_PORT=8000 .

# DEFAULT_PORT가 80포트로 된 도커파일을 생성하고 싶을 때
$ docker build --build-arg DEFAULT_PORT=80 .