-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
95 lines (84 loc) · 2.99 KB
/
docker-compose.yml
File metadata and controls
95 lines (84 loc) · 2.99 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
version: '3.8'
services:
# PostgreSQL 데이터베이스
postgres:
image: postgres:14-alpine
container_name: ${POSTGRES_CONTAINER_NAME}
restart: unless-stopped
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
PGDATA: /var/lib/postgresql/data/pgdata
TZ: Asia/Seoul
volumes:
- postgres_data:/var/lib/postgresql/data
- ./init-scripts:/docker-entrypoint-initdb.d
ports:
- "${POSTGRES_PORT}:5432"
networks:
- order-platform-network
# Spring Boot 애플리케이션
app:
build:
context: .
dockerfile: Dockerfile
container_name: ${APP_CONTAINER_NAME}
restart: unless-stopped
depends_on:
- postgres
environment:
# Spring 프로파일
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
SPRING_APPLICATION_NAME: ${SPRING_APPLICATION_NAME}
SPRING_MAIN_ALLOW_CIRCULAR_REFERENCES: true
# 데이터베이스 설정
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/${POSTGRES_DB}
SPRING_DATASOURCE_USERNAME: ${POSTGRES_USER}
SPRING_DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD}
SPRING_DATASOURCE_DRIVER_CLASS_NAME: org.postgresql.Driver
# JPA 설정
SPRING_JPA_HIBERNATE_DDL_AUTO: update
SPRING_JPA_SHOW_SQL: false
SPRING_JPA_PROPERTIES_HIBERNATE_FORMAT_SQL: true
SPRING_JPA_PROPERTIES_HIBERNATE_DIALECT: org.hibernate.dialect.PostgreSQLDialect
SPRING_JPA_PROPERTIES_HIBERNATE_USE_SQL_COMMENTS: true
SPRING_JPA_DEFER_DATASOURCE_INITIALIZATION: true
SPRING_DATA_JPA_REPOSITORIES_ENABLED: true
SPRING_SQL_INIT_MODE: always
SPRING_SQL_INIT_PLATFORM: postgresql
# 서버 설정
SERVER_PORT: 8080
SERVER_SERVLET_CONTEXT_PATH: /
SERVER_SERVLET_ENCODING_CHARSET: UTF-8
SERVER_SERVLET_ENCODING_FORCE: true
# JWT 설정
JWT_SECRET: ${JWT_SECRET}
JWT_ACCESS_TOKEN_EXPIRATION: ${JWT_ACCESS_TOKEN_EXPIRATION}
JWT_REFRESH_TOKEN_EXPIRATION: ${JWT_REFRESH_TOKEN_EXPIRATION}
# Google Gemini AI 설정
GOOGLE_GEMINI_API_KEY: ${GOOGLE_GEMINI_API_KEY}
GOOGLE_GEMINI_API_URL: ${GOOGLE_GEMINI_API_URL}
# 로깅 설정
LOGGING_LEVEL_ROOT: ${LOGGING_LEVEL_ROOT}
LOGGING_LEVEL_COM_SPARTACLUB_ORDERPLATFORM: ${LOGGING_LEVEL_APP}
LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_SECURITY: ${LOGGING_LEVEL_SECURITY}
LOGGING_LEVEL_ORG_HIBERNATE_SQL: ${LOGGING_LEVEL_SQL}
LOGGING_LEVEL_ORG_HIBERNATE_TYPE_DESCRIPTOR_SQL_BASICBINDER: ${LOGGING_LEVEL_SQL_BINDER}
LOGGING_PATTERN_CONSOLE: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
ports:
- "${APP_PORT}:8080"
volumes:
- app_logs:/app/logs
networks:
- order-platform-network
# 데이터 볼륨 설정
volumes:
postgres_data:
driver: local
app_logs:
driver: local
# 네트워크 설정
networks:
order-platform-network:
driver: bridge