# 목적
1. 로컬 개발 환경에서 Docker compose를 활용해 백엔드 서버를 컨테이너로 실행하고, 프론트엔드(Vite 기반)와의 API통신이 원활하게 이루어지는지 검증하기
2. 추후 배포 환경에서도 일관된 백엔드 동작을 보장하기 위해 Docker 기반 실행 과정을 경험하고 문서화 하려고함
# 진행
1. 전달받은 도커 설정 파일 `application.yml`을 백엔드 프로젝트의 `src/main/resources` 디렉토리에 추가
2. docker network 명령어로 컨테이너 간 통신을 위한 사용자 정의 브리지 네트워크 생성
3. gradle로 프로젝트 빌드(테스트실행 x)
4. docker compose up
5. mysql의 테이블에 dummy admin 계정을 수동으로 INSERT
6. 프론트 프로젝트 실행 후 api 요청 및 테스트
# 예상 결과
- 로그인 API 요청 시 응답 성공
- 관리자 로그인 완료 후 대시보드 페이지로 정상 이동
# 문제
## 1. JDK가 설치되어있지 않아서 오류
- `Java not found` 오류 발생
- 해결: jdk21 LTS 설치하고 시작
- windows x64 msi 다운로드 및 설치
- https://adoptium.net/temurin/releases/?version=21
Latest Releases | Adoptium
adoptium.net

## 2. 컨테이너가 무한 재시작 되는 오류
- docker logs로 오류 확인
- application.yml의 키와 코드 내 참조키 이름 불일치로 Value 주입 실패
- 해당 모델명 확인하고 키 이름 수정
## 3. 프론트에서 API연결 실패
- Vite환경 프록시 설정으로 해당 api 요청은 8081로 연결
- 로그인 API 요청 후 응답 성공 확인
# 최종 확인
1. 백엔드 서버 정상 기동 확인 (Docker 로그로 포트 오픈 및 DB 연결 확인)
2. 로그인 등 API 요청 성공
3. 프론트에서 API 응답 확인 완료
# 메모
1. 설정파일의 key-value를 코드와 일치시켜야함
2. docker logs 사용을 생활화하자
3. 프론트에서도 백엔드 컨테이너 상태나 네트워크 상황을 분석할 수 있는 로그분석 습관을 만들자
'개발 > Docker' 카테고리의 다른 글
| #4 Docker Compose (0) | 2025.05.04 |
|---|---|
| #3 Dockerfile (1) | 2025.05.04 |
| #2 Docker Volume (0) | 2025.05.03 |
| #1 Docker CLI (5) | 2025.05.02 |
| #0 Docker (0) | 2025.05.02 |