diff --git a/analytics-engine/docker-compose.yml b/analytics-engine/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..4a6320a2151bc53fbf2abe29c965d7e3d56a2931 --- /dev/null +++ b/analytics-engine/docker-compose.yml @@ -0,0 +1,76 @@ +services: + database: + image: postgres:15.1-alpine + restart: unless-stopped + environment: + - POSTGRES_DB=${POSTGRES_DATABASE} + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + volumes: + - ./db/production:/var/lib/postgresql/data + networks: + - internal + + redis_db: + image: redis:7-alpine + restart: unless-stopped + command: redis-server --requirepass ${REDIS_PASSWORD} + networks: + - internal + + scheduler: + image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest + restart: unless-stopped + expose: + - 8000 + labels: + - traefik.enable=true + - traefik.http.routers.${WEBSITE}-backend.rule=Host(`${URL}` && PathPrefix(`/api`)) + - traefik.http.routers.${WEBSITE}-backend.tls=true + - traefik.http.routers.${WEBSITE}-backend.tls.certresolver=lets-encrypt + #- traefik.http.routers.${WEBSITE}.middlewares=security-headers@file + networks: + - internal + - web + depends_on: + - database + - redis_db + volumes: + - ".env:/app/.env" + - "./configuration:/app/configuration" + + beat: + image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest + restart: unless-stopped + entrypoint: celery + command: -A scheduler.worker beat -l info --scheduler celery_sqlalchemy_scheduler.schedulers:DatabaseScheduler + networks: + - internal + depends_on: + - database + - redis_db + volumes: + - ".env:/app/.env" + - "./configuration:/app/configuration" + + worker: + image: registry.git.rwth-aachen.de/polaris/entwicklung/analytics-engine/scheduler:latest + restart: unless-stopped + entrypoint: celery + command: -A scheduler.worker worker -l info + networks: + - internal + depends_on: + - database + - redis_db + - beat + volumes: + - ".env:/app/.env" + - "./configuration:/app/configuration" + + +networks: + web: + external: true + internal: + external: false