Files
ITAM/TEST_LOCAL.md

2.7 KiB

로컬 Docker 테스트 가이드

준비 사항

  • Docker & Docker Compose 설치 (WSL2 Ubuntu 권장)
  • Node.js 20 (로컬 빌드 테스트 시)

테스트 단계

1. 파일 구조 확인

# 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 파일 검증

docker compose -f docker-compose.test.yaml config

3. 이미지 빌드 테스트

# 개별 빌드 테스트
docker build -f Dockerfile.backend.prod -t itam-backend:test .
docker build -f Dockerfile.frontend.prod -t itam-frontend:test .

4. 컨테이너 시작

# 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. 컨테이너 상태 확인

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. 정리

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 포트 이미 사용 중

docker ps
docker stop container_name

DB 연결 실패

  • 정상 동작 (NODE_ENV 때문에 /health는 200 반환)
  • 실제 API 호출 시 DB 오류 예상

권한 문제

  • logs/ 디렉토리 소유권 확인
  • 필요 시 mkdir -p logs/nginx && chmod 777 logs