# What this PR does Tested `make start` w/ both `mysql` and `postgres` in `COMPOSE_PROFILES` and things spin up properly. - Fixes some `yaml` formatting issues introduced [here](https://github.com/grafana/oncall/pull/2728/files#diff-f5d10b03472abe3719098ae8a8855468e92524ebe790c39a34d2c632f3f0486d) in #2728 which were causing the `mysql` container to fail to start up when running `make start` - Addresses #2492 by specifying `required: false` under `depends_on`, for containers in `docker-compose-developer.yml` which have container(s) which may be conditionally spun-up based on `COMPOSE_PROFILES`. Basically in v2.20.2 they introduced [this change](https://github.com/docker/compose/releases/tag/v2.20.2#:~:text=Add%20support%20of%20depends_on.required%20attribute%20by) which was a breaking change for our setup and preventing us from upgrading to >= 2.19.0. ## Which issue(s) this PR fixes Closes #2492 ‼️ with this PR you will need to make sure you are running `docker-compose` >= `v2.20.2`, otherwise 👇 ‼️  ## Checklist - [x] Unit, integration, and e2e (if applicable) tests updated - [x] Documentation added (or `pr:no public docs` PR label added if not required) - [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not required)
112 lines
2.7 KiB
YAML
112 lines
2.7 KiB
YAML
version: "3.9"
|
|
|
|
x-environment: &oncall-environment
|
|
DATABASE_TYPE: sqlite3
|
|
BROKER_TYPE: redis
|
|
BASE_URL: $DOMAIN
|
|
SECRET_KEY: $SECRET_KEY
|
|
FEATURE_PROMETHEUS_EXPORTER_ENABLED: ${FEATURE_PROMETHEUS_EXPORTER_ENABLED:-false}
|
|
PROMETHEUS_EXPORTER_SECRET: ${PROMETHEUS_EXPORTER_SECRET:-}
|
|
REDIS_URI: redis://redis:6379/0
|
|
DJANGO_SETTINGS_MODULE: settings.hobby
|
|
CELERY_WORKER_QUEUE: "default,critical,long,slack,telegram,webhook,retry,celery"
|
|
CELERY_WORKER_CONCURRENCY: "1"
|
|
CELERY_WORKER_MAX_TASKS_PER_CHILD: "100"
|
|
CELERY_WORKER_SHUTDOWN_INTERVAL: "65m"
|
|
CELERY_WORKER_BEAT_ENABLED: "True"
|
|
GRAFANA_API_URL: http://grafana:3000
|
|
|
|
services:
|
|
engine:
|
|
image: grafana/oncall
|
|
restart: always
|
|
ports:
|
|
- "8080:8080"
|
|
command: sh -c "uwsgi --ini uwsgi.ini"
|
|
environment: *oncall-environment
|
|
volumes:
|
|
- oncall_data:/var/lib/oncall
|
|
depends_on:
|
|
oncall_db_migration:
|
|
condition: service_completed_successfully
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
celery:
|
|
image: grafana/oncall
|
|
restart: always
|
|
command: sh -c "./celery_with_exporter.sh"
|
|
environment: *oncall-environment
|
|
volumes:
|
|
- oncall_data:/var/lib/oncall
|
|
depends_on:
|
|
oncall_db_migration:
|
|
condition: service_completed_successfully
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
oncall_db_migration:
|
|
image: grafana/oncall
|
|
command: python manage.py migrate --noinput
|
|
environment: *oncall-environment
|
|
volumes:
|
|
- oncall_data:/var/lib/oncall
|
|
depends_on:
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
redis:
|
|
image: redis:7.0.5
|
|
restart: always
|
|
expose:
|
|
- 6379
|
|
volumes:
|
|
- redis_data:/data
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 500m
|
|
cpus: "0.5"
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
timeout: 5s
|
|
interval: 5s
|
|
retries: 10
|
|
|
|
prometheus:
|
|
image: prom/prometheus
|
|
hostname: prometheus
|
|
restart: always
|
|
ports:
|
|
- "9090:9090"
|
|
volumes:
|
|
- ./prometheus.yml:/etc/prometheus/prometheus.yml
|
|
- prometheus_data:/prometheus
|
|
profiles:
|
|
- with_prometheus
|
|
|
|
grafana:
|
|
image: "grafana/${GRAFANA_IMAGE:-grafana:latest}"
|
|
restart: always
|
|
ports:
|
|
- "3000:3000"
|
|
environment:
|
|
GF_SECURITY_ADMIN_USER: ${GRAFANA_USER:-admin}
|
|
GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_PASSWORD:-admin}
|
|
GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS: grafana-oncall-app
|
|
GF_INSTALL_PLUGINS: grafana-oncall-app
|
|
volumes:
|
|
- grafana_data:/var/lib/grafana
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 500m
|
|
cpus: "0.5"
|
|
profiles:
|
|
- with_grafana
|
|
|
|
volumes:
|
|
grafana_data:
|
|
prometheus_data:
|
|
oncall_data:
|
|
redis_data:
|