# 로컬 Docker 테스트 가이드 ## 준비 사항 - Docker & Docker Compose 설치 (WSL2 Ubuntu 권장) - Node.js 20 (로컬 빌드 테스트 시) ## 테스트 단계 ### 1. 파일 구조 확인 ```bash # docker-compose.test.yaml이 다음을 사용 확인 ls -la docker/nginx/default.conf ls -la docker/frontend/default.conf ls -la Dockerfile.backend.prod ls -la Dockerfile.frontend.prod ls -la package.json ls -la src/ ls -la public/ ls -la index.html ``` ### 2. Compose 파일 검증 ```bash docker compose -f docker-compose.test.yaml config ``` ### 3. 이미지 빌드 테스트 ```bash # 개별 빌드 테스트 docker build -f Dockerfile.backend.prod -t itam-backend:test . docker build -f Dockerfile.frontend.prod -t itam-frontend:test . ``` ### 4. 컨테이너 시작 ```bash # WSL 터미널에서 cd /mnt/c/Users/user/Desktop/안건\ 파일/itam # 또는 docker-compose.test.yaml을 사용하여 전체 스택 시작 docker compose -f docker-compose.test.yaml up --build # 백그라운드에서 실행 docker compose -f docker-compose.test.yaml up -d --build ``` ### 5. 컨테이너 상태 확인 ```bash docker compose -f docker-compose.test.yaml ps docker logs itam-backend-test docker logs itam-frontend-test docker logs itam-nginx-test ``` ### 6. 브라우저 테스트 ``` http://localhost:8080/ # Frontend 접근 http://localhost:8080/api/ # Backend API 테스트 http://localhost:3000/health # 직접 backend health check ``` ### 7. 정리 ```bash docker compose -f docker-compose.test.yaml down ``` ## 예상되는 포트 매핑 - 8080: Nginx reverse proxy (frontend route to static + /api to backend) - 3000: Backend Express API (내부, frontend와 nginx를 통해 접근) - 80: Frontend Nginx (내부, 정적 파일 서빙) ## 테스트 체크리스트 - [ ] docker compose config 성공 - [ ] docker build 성공 (backend) - [ ] docker build 성공 (frontend) - [ ] 컨테이너 모두 실행 중 (ps 확인) - [ ] http://localhost:8080 접근 가능 (frontend 페이지 로드) - [ ] http://localhost:8080/api 응답 확인 (backend proxy 동작) - [ ] backend health check 성공 (docker logs에서 /health 요청 확인) ## 문제 해결 ### npm run build 실패 - Dockerfile.frontend.prod에서 tsc && vite build 실행 - package.json과 tsconfig.json 확인 ### nginx 포트 이미 사용 중 ```bash docker ps docker stop container_name ``` ### DB 연결 실패 - 정상 동작 (NODE_ENV 때문에 /health는 200 반환) - 실제 API 호출 시 DB 오류 예상 ### 권한 문제 - logs/ 디렉토리 소유권 확인 - 필요 시 mkdir -p logs/nginx && chmod 777 logs