Skip to Content
Sunbeen's Blog
DocumentsDockerDocker etc (dockerignore, ENV, ARG)

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