Docker etc (dockerignore, ENV, ARG)
.dockerignore
는 .gitignore
처럼 이미지에 포함하지 않을 파일 목록을 정의합니다.
.dockerignore
node_modules
Dockerfile
.dockerignore
.git
*.log
COPY . .
을 쓰더라도 지정한 항목은 이미지에 복사되지 않습니다.
- 이미지는 불변이며, 재현 가능한 환경
- 도커 이미지 내부의
node_modules
는 반드시npm install
등으로 이미지 안에서 직접 생성되어야 합니다. .dockerignore
는 로컬 환경의 오염을 방지하고, 이미지 용량 최적화에도 매우 중요합니다.
Docker ARG
ARG
는 이미지 빌드할 시 사용- 베이스 이미지 버전, 빌드 옵션
.env
파일은ARG
에는 직접 사용할 수 없습니다 (스크립트나 Makefile에서 처리 필요)
Dockerfile에서 기본값 설정
dockerfile
ARG VERSION
ENV APP_VERSION=$VERSION
커맨드라인에서 직접 설정 ARG
docker build --build-arg VERSION=20 -t my-app .
Docker ENV환경 변수 사용
- 하나의 도커 이미지로 여러 상황(개발/테스트/운영)에 대응하기 위해
- 코드를 하드코딩하지 않고, 외부 설정으로 유연하게 처리
- 이미지를 재빌드하지 않아도, 실행할 때 설정만 바꿔서 동작 가능
Dockerfile에서 기본값 설정
ENV PORT=80
EXPOSE $PORT
코드에서 활용 (ex : server.js)
const port = process.env.PORT || 80;
A. 커맨드라인에서 직접 설정 ENV
docker run -p 8000:8000 --env PORT=8000 my-app
docker run -p 8000:8000 -e PORT=8000 my-app
B. —env-file.env
파일 사용
.env 파일
PORT=8000
docker run
docker run -p 8000:8000 --env-file .env my-app
본 문서는 Udemy 강의: Docker & Kubernetes : 실전 가이드 의 내용을 바탕으로 학습한 내용을 정리한 것입니다.
Last updated on