-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdocker-compose.full-stack.prod.yml
More file actions
108 lines (103 loc) · 3.82 KB
/
Copy pathdocker-compose.full-stack.prod.yml
File metadata and controls
108 lines (103 loc) · 3.82 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
96
97
98
99
100
101
102
103
104
105
106
107
108
x-logging: &default-logging
driver: json-file
options:
max-size: "10m"
max-file: "5"
services:
redis:
logging: *default-logging
image: redis:7-alpine
restart: unless-stopped
expose:
- "6379"
environment:
REDIS_PASSWORD: ${REDIS_PASSWORD:?REDIS_PASSWORD must be set}
volumes:
- redis-data:/data
command: ["redis-server", "--appendonly", "yes", "--requirepass", "${REDIS_PASSWORD:?REDIS_PASSWORD must be set}"]
healthcheck:
test: ["CMD-SHELL", "redis-cli -a \"$${REDIS_PASSWORD}\" ping"]
interval: 5s
timeout: 3s
retries: 5
cycles-server:
logging: *default-logging
image: ghcr.io/runcycles/cycles-server:0.1.25.59
restart: unless-stopped
ports:
- "7878:7878"
environment:
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_PASSWORD: ${REDIS_PASSWORD:?REDIS_PASSWORD must be set}
ADMIN_API_KEY: ${ADMIN_API_KEY:?ADMIN_API_KEY must be set}
JAVA_OPTS: "-XX:MaxRAMPercentage=75 -XX:+UseG1GC -XX:+UseStringDeduplication"
LOGGING_STRUCTURED_FORMAT_CONSOLE: ecs
CYCLES_METRICS_TENANT_TAG_ENABLED: "false"
# Enable only after every writer runs the index-aware release.
RESERVATION_CREATED_AT_INDEX_ENABLED: ${RESERVATION_CREATED_AT_INDEX_ENABLED:-false}
SPRINGDOC_API_DOCS_ENABLED: "false"
SPRINGDOC_SWAGGER_UI_ENABLED: "false"
WEBHOOK_SECRET_ENCRYPTION_KEY: ${WEBHOOK_SECRET_ENCRYPTION_KEY:?WEBHOOK_SECRET_ENCRYPTION_KEY must be set}
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:7878/actuator/health/readiness"]
interval: 10s
timeout: 5s
retries: 3
start_period: 30s
depends_on:
redis:
condition: service_healthy
cycles-admin:
logging: *default-logging
image: ghcr.io/runcycles/cycles-server-admin:0.1.25.47
restart: unless-stopped
ports:
- "7979:7979"
environment:
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_PASSWORD: ${REDIS_PASSWORD:?REDIS_PASSWORD must be set}
ADMIN_API_KEY: ${ADMIN_API_KEY:?ADMIN_API_KEY must be set}
DASHBOARD_CORS_ORIGIN: ${DASHBOARD_CORS_ORIGIN:-}
JAVA_OPTS: "-XX:MaxRAMPercentage=75 -XX:+UseG1GC -XX:+UseStringDeduplication"
LOGGING_STRUCTURED_FORMAT_CONSOLE: ecs
WEBHOOK_SECRET_ENCRYPTION_KEY: ${WEBHOOK_SECRET_ENCRYPTION_KEY:?WEBHOOK_SECRET_ENCRYPTION_KEY must be set}
WEBHOOK_SECRET_ENCRYPTION_REQUIRED: "true"
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:7979/actuator/health/readiness"]
interval: 10s
timeout: 5s
retries: 3
start_period: 30s
depends_on:
redis:
condition: service_healthy
cycles-events:
logging: *default-logging
image: ghcr.io/runcycles/cycles-server-events:0.1.25.20
restart: unless-stopped
# Management port 9980 (health + Prometheus) is deliberately NOT published
# to the host: the events worker's actuator is unauthenticated by design
# (the separate management port is its isolation mechanism - see
# cycles-server-events OPERATIONS.md). Prometheus scrapes over the compose
# network; the container healthcheck probes in-container.
environment:
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_PASSWORD: ${REDIS_PASSWORD:?REDIS_PASSWORD must be set}
MANAGEMENT_PORT: 9980
JAVA_OPTS: "-XX:MaxRAMPercentage=75 -XX:+UseG1GC -XX:+UseStringDeduplication"
LOGGING_STRUCTURED_FORMAT_CONSOLE: ecs
WEBHOOK_SECRET_ENCRYPTION_KEY: ${WEBHOOK_SECRET_ENCRYPTION_KEY:?WEBHOOK_SECRET_ENCRYPTION_KEY must be set}
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:9980/actuator/health/readiness"]
interval: 10s
timeout: 5s
retries: 3
start_period: 30s
depends_on:
redis:
condition: service_healthy
volumes:
redis-data: