You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
services:
# spring bootapp:
build: .ports:
- "${APP_PORT}:8080"# 외부 -> 내부 포트 연결env_file:
- ".env"networks:
- "app-network"depends_on:
- postgresql # DB 먼저 실행# Postgrespostgresql:
image: "postgres:16-alpine"env_file:
- ".env"ports:
- "${DB_PORT}:5432"# 외부 -> DB 포트 연결volumes:
- "db-data:/var/lib/postgresql/data"networks:
- "app-network"volumes:
db-data: # DB 데이터 영속화networks:
app-network:
📌 PostgreSQL + Spring Boot: 개발·배포·Docker Compose 통합
https://hub.docker.com/_/postgres
1. PostgreSQL Docker 컨테이너 실행
2. 개발 환경 (application-dev.yml)
3. 개발 실행 결과
4. 배포 환경 준비 (prod)
Spring Boot 컨테이너와 PostgreSQL 컨테이너를 같은 네트워크에 연결
내부 통신 주소는 postgres (컨테이너 이름)
PostgreSQL 컨테이너 이름을 postgres로 사용하여 같은 네트워크 내에서 연결
5. 배포용 Spring Boot 이미지 빌드 & 실행
docker build -t my-boot:postgres -f Dockerfile . docker run -d -p 8787:8080 --name boot-container-250522 --env-file .env --network db-network my-boot:postgres docker logs boot-container-2505223. Docker Compose로 통합 자동화
postgresql은 서비스 이름이며 내부 네트워크의 호스트명으로 작동