109 lines
2.7 KiB
Markdown
109 lines
2.7 KiB
Markdown
# 로컬 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
|