Files
blog-backend/docker-compose.yml
pwy3282040@msecure.co 47135829f7 Docs: README 및 minio 추가
README.md 파일 작성.
minio 사용을 위한 의존성 추가, 환경변수 수정.
기타 주석 정리.
2025-12-26 10:59:38 +09:00

80 lines
1.9 KiB
YAML

services:
# 1. 백엔드 애플리케이션
blog-api:
build: .
container_name: blog-api
restart: always
ports:
- "8080:8080"
environment:
# Database
- SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/blog_db
- SPRING_DATASOURCE_USERNAME=wypark
- SPRING_DATASOURCE_PASSWORD=your_password
# Redis
- SPRING_DATA_REDIS_HOST=redis
- SPRING_DATA_REDIS_PORT=6379
# AWS S3 / MinIO (Docker 내부 통신용)
- CLOUD_AWS_CREDENTIALS_ACCESS_KEY=admin
- CLOUD_AWS_CREDENTIALS_SECRET_KEY=password
- CLOUD_AWS_REGION_STATIC=ap-northeast-2
- CLOUD_AWS_S3_ENDPOINT=http://minio:9000
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
networks:
- blog-net
# 2. 데이터베이스 (PostgreSQL)
db:
image: postgres:17-alpine
container_name: blog-db
restart: always
ports:
- "5432:5432"
environment:
POSTGRES_USER: wypark
POSTGRES_PASSWORD: your_password
POSTGRES_DB: blog_db
volumes:
- ./postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U wypark -d blog_db"]
interval: 5s
retries: 5
networks:
- blog-net
# 3. 캐시 서버 (Redis)
redis:
image: redis:7-alpine
container_name: blog-redis
restart: always
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
retries: 5
networks:
- blog-net
# 4. 오브젝트 스토리지 (MinIO)
minio:
image: minio/minio
container_name: minio
ports:
- "9000:9000" # API 통신
- "9001:9001" # 웹 콘솔
environment:
MINIO_ROOT_USER: "admin"
MINIO_ROOT_PASSWORD: "password"
command: server /data --console-address ":9001"
volumes:
- ./minio_data:/data
networks:
- blog-net
networks:
blog-net:
driver: bridge