개발/Docker

#5 Docker 환경에서 Spring Boot 백엔드 실행

Jinoo.keem 2025. 5. 5. 18:54
728x90

# 목적

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