# Docker로 TaxBaik 로컬 실행하기 ## 1. 사전 요구사항 - Docker Desktop 설치 - Docker Compose 설치 - 4GB+ 메모리 여유 ## 2. 빌드 및 실행 ```bash # 1단계: 빌드 (이미 완료됨) cd C:\Temp\taxbaik dotnet publish TaxBaik.Web -c Release -o ./publish/web dotnet publish TaxBaik.Admin -c Release -o ./publish/admin # 2단계: Docker Compose 실행 docker-compose up -d # 3단계: 상태 확인 docker-compose ps ``` ## 3. 접근 방법 ### 공개 사이트 (Razor Pages) - **URL**: http://localhost:5001/taxbaik - **기능**: - 홈페이지 보기 - 블로그 검색 - 상담 신청 폼 ### 관리자 백오피스 (Blazor Server) - **URL**: http://localhost:5002/taxbaik/admin/login - **초기 계정**: - username: `admin` - password: `admin123` - **기능**: - 대시보드 확인 - 블로그 관리 - 문의 조회 ## 4. 데이터베이스 접근 ### PostgreSQL CLI 접속 ```bash docker-compose exec postgres psql -U taxbaik -d taxbaikdb ``` ### 쿼리 예시 ```sql -- 테이블 확인 \dt -- 마이그레이션 확인 SELECT * FROM schema_migrations; -- 블로그 포스트 확인 SELECT id, title, is_published FROM blog_posts; -- 문의 확인 SELECT id, name, phone, status FROM inquiries; -- 관리자 확인 SELECT username FROM admin_users; ``` ## 5. 로그 확인 ```bash # Web 앱 로그 docker-compose logs -f taxbaik-web # Admin 앱 로그 docker-compose logs -f taxbaik-admin # 데이터베이스 로그 docker-compose logs -f postgres ``` ## 6. E2E 테스트 ### 6.1 공개 사이트 테스트 ```bash # 홈페이지 접근 curl -I http://localhost:5001/taxbaik/ # 예상: 200 OK # 블로그 목록 curl http://localhost:5001/taxbaik/blog | grep -o "title>[^<]*" | head -5 # 블로그 상세 (accountant-mistakes-5) curl http://localhost:5001/taxbaik/blog/accountant-mistakes-5 | grep -o "og:title[^>]*" ``` ### 6.2 문의 폼 제출 테스트 ```bash curl -X POST http://localhost:5001/taxbaik/contact \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "name=테스트&phone=010-1234-5678&service_type=사업자세무&message=테스트 문의&__RequestVerificationToken=" ``` ### 6.3 관리자 테스트 ```bash # 로그인 페이지 curl -I http://localhost:5002/taxbaik/admin/login # 예상: 200 OK # 로그인 (쿠키 저장) curl -c cookies.txt -X POST http://localhost:5002/taxbaik/admin/login \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "username=admin&password=admin123" # 대시보드 접근 (쿠키 사용) curl -b cookies.txt http://localhost:5002/taxbaik/admin/dashboard ``` ## 7. 종료 및 정리 ```bash # 컨테이너 중지 docker-compose down # 볼륨 포함 삭제 (데이터베이스 초기화) docker-compose down -v # 이미지 삭제 docker rmi taxbaik-web taxbaik-admin ``` ## 8. 트러블슈팅 | 문제 | 해결 방법 | |------|----------| | 포트 5001/5002 사용 중 | `netstat -ano \| findstr :5001` 후 프로세스 종료 | | 데이터베이스 연결 실패 | `docker-compose logs postgres` 로그 확인 | | 마이그레이션 오류 | `docker-compose down -v` 후 재시작 | | 메모리 부족 | Docker Desktop 설정에서 메모리 증가 | ## 9. 성능 모니터링 ```bash # 컨테이너 리소스 사용량 docker stats # 네트워크 확인 docker network ls docker network inspect taxbaik_default ``` ## 10. 데이터 검증 ### 초기 데이터 확인 ```bash # 카테고리 docker-compose exec postgres psql -U taxbaik -d taxbaikdb \ -c "SELECT * FROM categories;" # 블로그 포스트 docker-compose exec postgres psql -U taxbaik -d taxbaikdb \ -c "SELECT title, is_published FROM blog_posts;" # 관리자 docker-compose exec postgres psql -U taxbaik -d taxbaikdb \ -c "SELECT username FROM admin_users;" ``` --- **상태 확인 URL**: - 공개 사이트: http://localhost:5001/taxbaik - 관리자: http://localhost:5002/taxbaik/admin/login - 데이터베이스: localhost:5432