Dockerizing Spring Boot with Vite and Postgres: A Complete G
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

스프링 부트 애플리케이션을 데이터베이스와 Vite 프론트엔드와 함께 도커화하기

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • Java/Spring Boot 백엔드 개발자, JavaScript/Vite 프론트엔드 개발자
  • Docker Compose를 활용한 환경 구성에 관심 있는 중급 이상 개발자
  • 데이터베이스 연동이 필요한 애플리케이션 개발자

핵심 요약

  • 3개 서비스 구성: Spring Boot 백엔드, Vite 프론트엔드, Postgres 데이터베이스
  • 개발용 Docker Compose 구성: devops/compose.dev.yml 파일로 단일 DB 서비스 제공
  • 필수 의존성: Spring Data JPA, PostgreSQL Driver, Docker Compose Support

섹션별 세부 요약

1. 프로젝트 구조

  • Monorepo 디렉토리:

- backend/: Spring Boot 백엔드 코드

- frontend/: Vite 프론트엔드 코드

- devops/: Docker Compose 설정 파일 저장

  • 기본 설정 파일: root/compose.yml은 삭제하고 devops/compose.yml 사용

2. 의존성 구성

  • Spring Boot 의존성:

- Spring Web: REST API 생성

- Spring Data JPA: Hibernate ORM 기반 DB 연동

- PostgreSQL Driver: Java-Postgres 연결

- Spring Boot Actuator: 프로덕션 모니터링 기능

  • Docker Compose Support: DB 연결 설정 자동화

3. Docker Compose 설정

  • 생산용 compose.yml:

- backend/: Spring Boot 애플리케이션

- frontend/: npm run build 실행 후 dist/ 폴더 생성

- db/: Postgres 이미지 사용 (image: postgres)

  • 개발용 compose.dev.yml:

- 단일 db/ 서비스로 구성 (프론트엔드/백엔드 빌드 없음)

4. 실행 및 배포

  • 환경 구분:

- devops/compose.yml: 프로덕션 환경

- devops/compose.dev.yml: 개발 환경

  • GitHub 저장소: 전체 프로젝트 소스 코드 제공

결론

  • Docker Compose 사용 권장: docker-compose up 명령어로 팀원 간 환경 일관성 유지
  • 개발/프로덕션 분리: compose.dev.yml을 사용해 개발 시 DB만 실행, compose.yml로 전체 서비스 구성
  • 의존성 명시: Docker Compose Support 의존성을 포함하면 DB 연결 설정이 자동화됨