[Docker] Argument & Environment Variables
업데이트:
Argument & Environment variables
ENV
하드코딩이 아닌 환경변수를 Global하게 설정해줄 수 있음 (ex. PORT 같은 경우)
- 실행 코드가 환경변수를 기반으로 실행되도록 변경
/* server.js */ app.listen(process.env.PORT);
- Dockerfile에서 환경변수 지정
# Dockerfile ... COPY . . ENV PORT 80 EXPOSE $PORT ...
⇒ 이미지 Re-build
- Docker shell에서 지정
--env Key=Value
또는-e Key=Value
사용 가능
docker run -d --rm -p 3000:8000 --env PORT=8000 --name feedback-app - v ... # 여러개인 경우 -e key1=val1 -e key2=val2 ...
.env
파일로 지정--env-files <file_path>
# .env 파일 PORT=8000
docker run -d --rm -p 3000:8000 --env-files ./.env --name feedback-app - v ...
ARG
- Dockerfile의 일부를 변경하고 이미지를 re-build 해야되는 경우 (ex. PORT별로 이미지 빌드)
- Dockerfile에서
ARG
지정ARG <KEY>=<VALUE>
# Dockerfile ... COPY . . ARG DEFAULT_PORT=80 ENV PORT $DEFAULT_PORT EXPOSE $PORT ...
- Docker shell에서 지정
--build-arg <KEY>=<VALUE>
docker build -t feedback-node:dev --build-arg DEFAULT_PORT=8000 .
Reference
Udemy - Docker & Kubernetes: The Practical Guide
댓글남기기