-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
89 lines (85 loc) · 2.59 KB
/
docker-compose.yml
File metadata and controls
89 lines (85 loc) · 2.59 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
services:
backend:
container_name: atomic-backend
build:
context: ./backend
dockerfile: Dockerfile
ports:
- "8080:8080"
environment:
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-prod}
SPRING_DATASOURCE_URL: ${SPRING_DATASOURCE_URL:-jdbc:postgresql://db:5432/atomic_habits}
SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME:-postgres}
SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD:-password}
SPRING_DATASOURCE_DRIVER_CLASS_NAME: org.postgresql.Driver
SPRING_JPA_DATABASE_PLATFORM: ${SPRING_JPA_DATABASE_PLATFORM:-org.hibernate.dialect.PostgreSQLDialect}
SPRING_JPA_HIBERNATE_DDL_AUTO: ${SPRING_JPA_HIBERNATE_DDL_AUTO:-update}
SPRING_JPA_SHOW_SQL: "false"
SPRING_H2_CONSOLE_ENABLED: "false"
SPRING_JWT_SECRET: ${SPRING_JWT_SECRET:?JWT secret must be set}
AGENTSCOPE_MODEL_API_KEY: ${AGENTSCOPE_MODEL_API_KEY:?AI API key must be set}
AGENTSCOPE_MODEL_NAME: ${AGENTSCOPE_MODEL_NAME:-Qwen/Qwen2.5-72B-Instruct}
AGENTSCOPE_BASE_URL: ${AGENTSCOPE_BASE_URL:-https://api.siliconflow.com/v1}
APP_CORS_ALLOWED_ORIGINS: ${APP_CORS_ALLOWED_ORIGINS:-http://localhost}
depends_on:
db:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:8080/actuator/health || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
restart: unless-stopped
networks:
- atomic-network
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
frontend:
container_name: atomic-frontend
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- "80:80"
depends_on:
backend:
condition: service_healthy
restart: unless-stopped
networks:
- atomic-network
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
db:
container_name: atomic-db
image: postgres:15-alpine
environment:
POSTGRES_DB: ${POSTGRES_DB:-atomic_habits}
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- db_data:/var/lib/postgresql/data
restart: unless-stopped
networks:
- atomic-network
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
volumes:
db_data:
networks:
atomic-network:
driver: bridge