-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.prod.yml
More file actions
75 lines (74 loc) · 2.98 KB
/
docker-compose.prod.yml
File metadata and controls
75 lines (74 loc) · 2.98 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
services:
# SSL 인증서 발급용 certbot 서비스 (프로필로 분리)
certbot:
image: certbot/certbot:latest
container_name: melog-certbot
volumes:
- /etc/letsencrypt:/etc/letsencrypt
- /var/lib/letsencrypt:/var/lib/letsencrypt
command: >
certonly --standalone
--email kioplm0211@gmail.com
--agree-tos --no-eff-email
--domains melog508.duckdns.org
--non-interactive
ports:
- "80:80"
restart: "no"
profiles:
- ssl-setup
app:
build:
context: .
dockerfile: Dockerfile.prod
environment:
SPRING_PROFILES_ACTIVE: prod
DB_HOST: ${DB_HOST}
DB_PORT: ${DB_PORT}
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
# Clova App Common Configuration
CLOVA_APP_URL: ${CLOVA_APP_URL:-https://naveropenapi.apigw.ntruss.com}
CLOVA_APP_CLIENT_ID: ${CLOVA_APP_CLIENT_ID}
CLOVA_APP_CLIENT_SECRET: ${CLOVA_APP_CLIENT_SECRET}
# Clova Speech API Configuration
CLOVA_SPEECH_URL: ${CLOVA_SPEECH_URL:-https://naveropenapi.apigw.ntruss.com}
CLOVA_SPEECH_CLIENT_ID: ${CLOVA_SPEECH_CLIENT_ID}
CLOVA_SPEECH_CLIENT_SECRET: ${CLOVA_SPEECH_CLIENT_SECRET}
CLOVA_SPEECH_STT_ENDPOINT: ${CLOVA_SPEECH_STT_ENDPOINT:-/recog/v1/stt}
CLOVA_SPEECH_DEFAULT_LANG: ${CLOVA_SPEECH_DEFAULT_LANG:-Kor}
CLOVA_SPEECH_MAX_DURATION: ${CLOVA_SPEECH_MAX_DURATION:-60}
CLOVA_SPEECH_SUPPORTED_FORMATS: ${CLOVA_SPEECH_SUPPORTED_FORMATS:-[mp3, aac, ac3, ogg, flac, wav]}
CLOVA_SPEECH_TIMEOUT_MS: ${CLOVA_SPEECH_TIMEOUT_MS:-10000}
# Clova Studio Configuration
CLOVA_STUDIO_BASE_URL: ${CLOVA_STUDIO_BASE_URL:-https://clovastudio.stream.ntruss.com}
CLOVA_STUDIO_API_KEY: ${CLOVA_STUDIO_API_KEY}
CLOVA_STUDIO_MODEL: ${CLOVA_STUDIO_MODEL:-HCX-005}
CLOVA_STUDIO_TIMEOUT_MS: ${CLOVA_STUDIO_TIMEOUT_MS:-8000}
# Clova Voice API Configuration
CLOVA_VOICE_TTS_ENDPOINT: ${CLOVA_VOICE_TTS_ENDPOINT:-/tts-premium/v1/tts}
CLOVA_VOICE_SUPPORTED_FORMATS: ${CLOVA_VOICE_SUPPORTED_FORMATS:-[mp3, wav]}
CLOVA_VOICE_TIMEOUT_MS: ${CLOVA_VOICE_TIMEOUT_MS:-20000}
# Ncloud Object storage Configuration
NCLOUD_ACCESS_KEY: ${NCLOUD_ACCESS_KEY}
NCLOUD_SECRET_KEY: ${NCLOUD_SECRET_KEY}
NCLOUD_S3_ENDPOINT: ${NCLOUD_S3_ENDPOINT}
NCLOUD_S3_REGION: ${NCLOUD_S3_REGION}
NCLOUD_S3_BUCKET: ${NCLOUD_S3_BUCKET}
# SSL 인증서 설정
DOMAIN_NAME: melog508.duckdns.org
SERVER_PORT: 443
SSL_KEY_STORE_PASSWORD: ${SSL_KEY_STORE_PASSWORD}
ports:
- "443:443" # HTTPS 포트
user: "0:0" # root 권한으로 실행 (권한 문제 해결)
volumes:
- /etc/letsencrypt:/etc/letsencrypt:ro # SSL 인증서 전체 디렉터리 마운트
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-fsS", "-k", "https://localhost/actuator/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s