피드로 돌아가기
Typescript Monorepo Development using Docker Compose Watch, Turborepo and PNPM
Dev.toDev.to
DevOps

Docker Compose Watch와 Turborepo 기반 Monorepo 개발 가속화

Typescript Monorepo Development using Docker Compose Watch, Turborepo and PNPM

Nathan Cook2026년 5월 7일11intermediate

Context

Docker Bind-mount 방식의 의존성 불일치 및 root 권한 폴더 생성 문제로 인한 개발 경험 저하 발생. 특히 Code-generation이 필요한 shared package의 경우 컨테이너 재빌드 과정에서 집중력 분산 및 피드백 루프 지연이라는 한계 직면.

Technical Solution

  • Docker Compose Watch 도입을 통한 소스 코드 변경 사항의 실시간 동기화 및 Hot Reload 구현
  • Turborepo의 prune 명령어를 활용하여 타겟 서비스에 필요한 최소한의 의존성 그래프만 추출하는 Docker 레이어 최적화
  • PNPM Cache Mount 적용을 통한 패키지 설치 시간 단축 및 효율적인 의존성 관리
  • Prisma Client의 output 경로를 명시적으로 설정하여 호스트와 컨테이너 간의 코드 생성 결과물 공유 구조 설계
  • turbo run 스크립트를 통한 DB Schema 변경, Client 생성, Seeding의 원스톱 자동화 파이프라인 구축

- Monorepo 빌드 시 `turbo prune --docker`를 사용하여 이미지 크기 최적화 및 빌드 속도 향상 검토 - Docker Compose Watch 설정 시 단순 파일 복사를 넘어 Hot Reload가 필요한 서비스별 트리거 정의 - Prisma 등 Code-gen 도구 사용 시 Shared Package의 생성 경로를 외부로 설정하여 동기화 이슈 해결

원문 읽기