version: "3" services: anonymous_github: build: . restart: always image: tdurieux/anonymous_github:v2 env_file: - ./.env volumes: - ./repositories:/app/build/repositories/ environment: - REDIS_HOSTNAME=redis - DB_HOSTNAME=mongodb ports: - $PORT:$PORT healthcheck: test: - CMD - node - healthcheck.js interval: 10s timeout: 10s retries: 5 links: - mongodb - redis - opentelemetry redis: image: "redis:alpine" restart: always healthcheck: test: - CMD - redis-cli - ping interval: 10s timeout: 10s retries: 5 mongodb: image: mongo:latest restart: on-failure environment: MONGO_INITDB_ROOT_USERNAME: $DB_USERNAME MONGO_INITDB_ROOT_PASSWORD: $DB_PASSWORD volumes: - mongodb_data_container:/data/db ports: - 127.0.0.1:27017:27017 command: --quiet healthcheck: test: - CMD - mongo - --eval - "db.adminCommand('ping')" interval: 10s timeout: 10s retries: 5 opentelemetry: image: otel/opentelemetry-collector restart: always command: ["--config=/etc/otel-collector-config.yaml"] volumes: - ./opentelemetry-collector.yml:/etc/otel-collector-config.yaml depends_on: - jaeger - prometheus jaeger: image: jaegertracing/all-in-one:latest restart: always ports: - 127.0.0.1:16686:16686 prometheus: image: prom/prometheus:latest restart: always volumes: - ./prometheus.yaml:/etc/prometheus/prometheus.yml ports: - 127.0.0.1:9090:9090 mongodb-backup: image: tiredofit/db-backup links: - mongodb volumes: - ./db_backups:/backup environment: - DB_TYPE=mongo - DB_HOST=mongodb - DB_DUMP_FREQ=60 - DB_CLEANUP_TIME=240 - COMPRESSION=XZ - DB_USER=$DB_USERNAME - DB_PASS=$DB_PASSWORD restart: always volumes: mongodb_data_container: