Docker Compose로 전체 스택을 로컬에서 실행하는 환경입니다.
- Docker Desktop 설치 후 실행
- Git, Make (Mac 기본 내장 / Windows:
choco install make)
git clone -b local-dev https://github.com/100-hours-a-week/5-team-service-cloud.git doktori
cd doktori
make setupmake setup 실행 후 .env 파일 3개를 수정해야 합니다:
| 파일 | 내용 |
|---|---|
.env |
DB 비밀번호 (DB_PASSWORD), DB 유저 (DB_USERNAME) |
Backend/.env |
JWT, Kakao OAuth, Zoom, S3 등 |
Backend/api/main/src/resources/firebase-service-account.json |
파이어베이스 |
AI/.env |
Gemini API key 등 |
값은 팀 노션 참고
make up # 전체 빌드 + 시작 (첫 실행 시 5~10분 소요)
make down # 중지 (데이터 유지)
make clean # 중지 + 데이터 삭제 (주의!)| 서비스 | URL |
|---|---|
| Frontend | http://localhost |
| Backend API | http://localhost/api |
| Chat (WebSocket) | http://localhost/api/chat |
| AI | http://localhost/ai |
| MySQL | localhost:3307 (Workbench 등) |
| Redis | localhost:6379 |
make up은 디스크에 있는 코드 그대로 빌드합니다. git 브랜치를 신경 쓰지 않습니다.
cd Backend
git checkout feature/my-feature # 내 브랜치로 이동
cd ..
make up # → feature/my-feature 코드로 전체 스택 실행다른 서비스(Frontend, AI)도 마찬가지입니다. 각 폴더에서 원하는 브랜치를 체크아웃한 뒤 make up하면 그 코드로 빌드됩니다.
make pull # develop 브랜치인 레포만 pull → 재빌드 → 재시작make pull은 develop 브랜치에 있는 레포만 pull합니다. 다른 브랜치에서 작업 중인 레포는 자동으로 스킵되므로 안전합니다.
Frontend: pulling develop... ← develop이므로 pull
Backend: on 'feature/auth' → skipped ← 작업 중이므로 스킵
AI: pulling develop... ← develop이므로 pull
make pull-fe # Frontend 현재 브랜치 pull
make pull-be # Backend 현재 브랜치 pull
make pull-ai # AI 현재 브랜치 pull현재 체크아웃된 브랜치를 그대로 pull합니다. 재빌드는 하지 않으므로 필요하면 make up을 별도로 실행하세요.
make sync # 모든 레포의 현재 브랜치 pull → 재빌드 → 재시작make pull과 달리 develop 여부와 관계없이 각 레포의 현재 브랜치를 pull합니다.
Docker 안에서는 IDE 디버깅(breakpoint 등)이 안 됩니다. 평소 개발은 DB만 Docker로 띄우고 서비스는 IDE에서 직접 실행하세요.
make deps # MySQL(localhost:3307) + Redis(localhost:6379)만 실행이후 IDE에서 Backend/Frontend/AI를 평소처럼 실행하면 됩니다. 전체 통합 테스트가 필요할 때만 make up을 사용하세요.
make logs # 전체
make logs-be # Backend (API)
make logs-chat # Backend (Chat)
make logs-fe # Frontend
make logs-ai # AI
make ps # 서비스 상태
make redis-cli # Redis CLI
make mysql-cli # MySQL CLI
make help # 전체 명령어 목록make down→ 데이터 유지 /make clean→ 데이터 삭제- Frontend 소스 변경 후 재빌드:
make clean && make up - 80 포트 충돌 시:
lsof -i :80으로 확인 후 종료 make up은 현재 디스크의 코드를 빌드 (브랜치 무관)make pull은 develop 브랜치인 레포만 pull (작업 중인 레포는 자동 스킵)