Files
tutor-tool/docker-compose.yml
2026-02-22 03:08:09 +01:00

93 lines
2.4 KiB
YAML

services:
db:
image: postgres:17
restart: always
env_file: ./app/.env.db
ports:
- "127.0.0.1:5433:5432"
volumes:
- ./data/postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 5
tutortool:
build:
context: ./app
dockerfile: Dockerfile
env_file: ./app/.env.tutortool
ports:
- "127.0.0.1:5000:5000"
volumes:
- ./data/slides:/src/data/slides
- ./data/exports:/src/data/exports
- ./logs:/src/logs
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
restart: on-failure
redis:
image: redis:alpine
restart: unless-stopped
prometheus:
image: prom/prometheus:latest
restart: unless-stopped
ports:
- "127.0.0.1:9090:9090"
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- ./data/prometheus:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.retention.time=15d'
- '--storage.tsdb.retention.size=512MB'
depends_on:
- blackbox-exporter
blackbox-exporter:
image: prom/blackbox-exporter:latest
restart: unless-stopped
volumes:
- ./prometheus/blackbox.yml:/etc/blackbox-exporter/config.yml
grafana:
image: grafana/grafana:latest
restart: unless-stopped
env_file:
- ./app/.env.db
- ./.env.grafana
ports:
- "127.0.0.1:3333:3000"
volumes:
- ./data/grafana:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning
environment:
- GF_USERS_ALLOW_SIGN_UP=false
- GF_SERVER_ROOT_URL=https://tutor.cato447.de/dashboard/
- GF_SERVER_SERVE_FROM_SUB_PATH=true
- GF_SECURITY_ALLOW_EMBEDDING=true
depends_on:
- prometheus
- db
act-runner:
image: gitea/act_runner:latest
restart: unless-stopped
environment:
- GITEA_INSTANCE_URL=https://gitea.cato447.de
- GITEA_RUNNER_REGISTRATION_TOKEN=${ACT_RUNNER_TOKEN}
- GITEA_RUNNER_NAME=tutor-runner
- GITEA_RUNNER_LABELS=ubuntu-latest:docker://node:22
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data/act_runner:/data
- ./data/slides:/slides
- ./data/exports:/exports
mem_limit: 2g