-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
62 lines (51 loc) · 3.02 KB
/
Copy pathdocker-compose.yml
File metadata and controls
62 lines (51 loc) · 3.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# ---------------------------------------------------------------------------
# Yeoun Backend — Docker Compose
# 본 compose 파일은 Docker Hub push 없이 로컬에서 Spring Boot 이미지를 직접 빌드한다.
# PostgreSQL은 외부에서 호스팅 중인 DB를 사용하므로 DB 컨테이너를 생성하지 않는다.
# 실행 전 `.env.example`을 `.env`로 복사한 뒤 실제 환경 변수 값을 채운다.
# ---------------------------------------------------------------------------
services:
# Spring Boot 백엔드 애플리케이션 컨테이너.
# `docker compose up --build` 실행 시 Dockerfile을 사용해 로컬에서 이미지를 빌드한다.
app:
container_name: yeoun-app
# 현재 레포 루트를 빌드 컨텍스트로 사용한다.
build:
context: .
dockerfile: Dockerfile
# 호스트 포트는 `.env`의 APP_PORT로 조정 가능하다.
# 컨테이너 내부 Spring Boot 포트는 SERVER_PORT=8080으로 고정한다.
ports:
- "${APP_PORT:-8080}:8080"
# Spring Boot 설정값.
# `${VAR:?message}` 형식은 해당 값이 없으면 compose 실행을 즉시 중단한다.
# 민감 정보는 docker-compose.yml에 직접 쓰지 않고 `.env`에서 주입한다.
environment:
# 외부 호스팅 PostgreSQL 접속 정보.
# 예: jdbc:postgresql://database.example.com:5432/postgres
SPRING_DATASOURCE_URL: ${SPRING_DATASOURCE_URL:?SPRING_DATASOURCE_URL is required}
SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME:?SPRING_DATASOURCE_USERNAME is required}
SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD:?SPRING_DATASOURCE_PASSWORD is required}
# 개발/테스트 환경에서는 update, 운영에서는 validate 또는 migration 도입 권장.
SPRING_JPA_HIBERNATE_DDL_AUTO: ${SPRING_JPA_HIBERNATE_DDL_AUTO:-update}
# Spring Boot 컨테이너 내부 포트.
SERVER_PORT: 8080
# JWT 설정. secret-key는 충분히 긴 랜덤 문자열을 사용한다.
CUSTOM_JWT_SECRET_KEY: ${CUSTOM_JWT_SECRET_KEY:?CUSTOM_JWT_SECRET_KEY is required}
CUSTOM_JWT_ACCESS_EXP_MIN: ${CUSTOM_JWT_ACCESS_EXP_MIN:-60}
CUSTOM_JWT_REFRESH_EXP_DAY: ${CUSTOM_JWT_REFRESH_EXP_DAY:-30}
# FastAPI Persona Engine 내부 호출 설정.
# FastAPI가 호스트 PC에서 실행 중이면 Windows/Mac Docker Desktop 기준
# http://host.docker.internal:8000/ 형태를 사용할 수 있다.
CUSTOM_FASTAPI_BASE_URL: ${CUSTOM_FASTAPI_BASE_URL:?CUSTOM_FASTAPI_BASE_URL is required}
CUSTOM_FASTAPI_INTERNAL_TOKEN: ${CUSTOM_FASTAPI_INTERNAL_TOKEN:?CUSTOM_FASTAPI_INTERNAL_TOKEN is required}
# 파일 업로드 크기 제한 (기본값 1MB → 500MB로 확장)
SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE: 500MB
SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE: 500MB
networks:
- yeoun-network
networks:
# 앱 컨테이너 전용 브리지 네트워크.
# 현재 compose에는 app 서비스만 있으며 DB 컨테이너는 포함하지 않는다.
yeoun-network:
driver: bridge