/엔지니어/Docker / 컨테이너/Docker 컴포즈로 개발 환경 구축하기
Docker / 컨테이너초급ubuntumacoswindowsdockercompose개발환경

Docker 컴포즈로 개발 환경 구축하기

Docker Compose를 사용해 일관된 개발 환경을 구성하는 실전 패턴. 볼륨, 네트워크, 환경변수 관리까지.

Docker Compose 기본 구조

YAML
# docker-compose.yml
version: "3.9"

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile.dev
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules   # 컨테이너 node_modules 보호
    environment:
      - NODE_ENV=development
    depends_on:
      db:
        condition: service_healthy

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: dev
      POSTGRES_PASSWORD: devpass
      POSTGRES_DB: myapp
    volumes:
      - pg_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U dev"]
      interval: 5s
      timeout: 3s
      retries: 5

  redis:
    image: redis:7-alpine
    command: redis-server --save 60 1

volumes:
  pg_data:

자주 쓰는 Compose 명령어

Bash
docker compose up -d              # 백그라운드 실행
docker compose up --build         # 이미지 재빌드 후 실행
docker compose down -v            # 컨테이너 + 볼륨 삭제
docker compose logs -f app        # 특정 서비스 로그 팔로우
docker compose exec app bash      # 컨테이너 셸 접속
docker compose ps                 # 서비스 상태 확인

환경변수 파일 분리

Bash
# .env (git 제외)
DB_PASSWORD=secretpass
API_KEY=abc123

# docker-compose.yml
services:
  app:
    env_file:
      - .env

개발/프로덕션 설정 분리

Bash
# docker-compose.override.yml (개발용, git 제외 가능)
services:
  app:
    volumes:
      - .:/app
    command: npm run dev
Bash
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
#docker#compose#개발환경#container
편집 안내 · Editorial Note

이 가이드는 AI 도구를 활용해 초안을 구성하고 사람이 명령어·문맥을 검토해 발행했습니다. 운영체제와 도구 버전에 따라 결과가 달라질 수 있으므로 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요.

관련 공식 문서Docker 공식 문서

질문 & 답변 (Q&A)

이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.