· last year · Jun 25, 2024, 05:45 PM
1version: "3.9"
2
3x-environment: &oncall-environment
4 DATABASE_TYPE: sqlite3
5 BROKER_TYPE: redis
6 BASE_URL: $DOMAIN
7 SECRET_KEY: $SECRET_KEY
8 FEATURE_PROMETHEUS_EXPORTER_ENABLED: ${FEATURE_PROMETHEUS_EXPORTER_ENABLED:-false}
9 PROMETHEUS_EXPORTER_SECRET: ${PROMETHEUS_EXPORTER_SECRET:-}
10 REDIS_URI: redis://redis:6379/0
11 DJANGO_SETTINGS_MODULE: settings.hobby
12 CELERY_WORKER_QUEUE: "default,critical,long,slack,telegram,webhook,retry,celery,grafana"
13 CELERY_WORKER_CONCURRENCY: "1"
14 CELERY_WORKER_MAX_TASKS_PER_CHILD: "100"
15 CELERY_WORKER_SHUTDOWN_INTERVAL: "65m"
16 CELERY_WORKER_BEAT_ENABLED: "True"
17 GRAFANA_API_URL: https://my.testdomain.com:3000
18
19services:
20 engine:
21 image: grafana/oncall
22 restart: always
23 ports:
24 - "8080:8080"
25 command: sh -c "uwsgi --ini uwsgi.ini"
26 environment: *oncall-environment
27 volumes:
28 - oncall_data:/var/lib/oncall
29 depends_on:
30 oncall_db_migration:
31 condition: service_completed_successfully
32 redis:
33 condition: service_healthy
34
35 celery:
36 image: grafana/oncall
37 restart: always
38 command: sh -c "./celery_with_exporter.sh"
39 environment: *oncall-environment
40 volumes:
41 - oncall_data:/var/lib/oncall
42 depends_on:
43 oncall_db_migration:
44 condition: service_completed_successfully
45 redis:
46 condition: service_healthy
47
48 oncall_db_migration:
49 image: grafana/oncall
50 command: python manage.py migrate --noinput
51 environment: *oncall-environment
52 volumes:
53 - oncall_data:/var/lib/oncall
54 depends_on:
55 redis:
56 condition: service_healthy
57
58 redis:
59 image: redis:7.0.5
60 restart: always
61 expose:
62 - 6379
63 volumes:
64 - redis_data:/data
65 deploy:
66 resources:
67 limits:
68 memory: 500m
69 cpus: "0.5"
70 healthcheck:
71 test: ["CMD", "redis-cli", "ping"]
72 timeout: 5s
73 interval: 5s
74 retries: 10
75
76volumes:
77 grafana_data:
78 prometheus_data:
79 oncall_data:
80 redis_data: