[INFRA-05] dev override + .env.dev

작업 내용 (설계 의도)

변경 사항

근거 TDD: ../TDD.md “스택 격리”, “env 라벨 주입”. ADR-005. base compose(INFRA-02)에 dev 환경 값을 얹는 override와 env 파일을 신설한다. ⑧ 소유 파일.

  • docker-compose.dev.yml: 서비스별 dev 호스트 포트(backend 8080, mysql 3306, mongodb 27017, redis 6379, kafka 9092, minio 9000/9001, mock 9101-9103, mailhog 1025/8025) — DB 포트도 노출(디버그 편의).
  • backend environmentAPP_ENV: dev 리터럴 주입(신규 키 없음, application.yml:171 소비).
  • .env.dev: DOCKER_TAG=latest(dev), DB 크리덴셜, 포트 변수.
  • 실행 규약: docker compose -p sports-dev -f docker-compose.yml -f docker-compose.dev.yml up -d.

롤백: 파일 revert. dev 스택은 prod와 네임스페이스 분리라 상호 무영향.

의존

  • INFRA-02 (base 서비스명·내부 포트 계약)

다이어그램

클래스 의존

flowchart LR
    Base["docker-compose.yml"] --> Merge["-f 병합"]
    DevOv["docker-compose.dev.yml"] --> Merge
    EnvDev[".env.dev"] --> Merge
    Merge --> Stack["sports-dev 스택 APP_ENV=dev"]

테스트 케이스

  • docker compose -p sports-dev -f docker-compose.yml -f docker-compose.dev.yml config가 exit 0이다
  • 기동 후 docker exec sports-dev-backend-1 env | grep APP_ENVdev를 반환한다(local 잔존 0)
  • dev 스택이 backend를 8080에 노출한다
  • dev는 DB 포트(3306 등)를 디버그용으로 노출한다
  • 네트워크·볼륨이 sports-dev_ 접두사로 격리된다