mirror of
https://github.com/tdurieux/anonymous_github.git
synced 2026-02-12 18:32:44 +00:00
136 lines
2.7 KiB
YAML
136 lines
2.7 KiB
YAML
version: "3.8"
|
|
|
|
services:
|
|
anonymous_github:
|
|
build: .
|
|
restart: always
|
|
image: tdurieux/anonymous_github:v2
|
|
ports:
|
|
- $EXPOSED_PORT:5000
|
|
env_file:
|
|
- ./.env
|
|
volumes:
|
|
- ./repositories:/app/repositories/
|
|
environment:
|
|
- PORT=5000
|
|
- REDIS_HOSTNAME=redis
|
|
- DB_HOSTNAME=mongodb
|
|
- STREAMER_ENTRYPOINT=http://streamer:5000/
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- node
|
|
- healthcheck.js
|
|
interval: 10s
|
|
timeout: 10s
|
|
retries: 5
|
|
depends_on:
|
|
- mongodb
|
|
- redis
|
|
- streamer
|
|
|
|
streamer:
|
|
build: .
|
|
restart: always
|
|
image: tdurieux/anonymous_github:v2
|
|
deploy:
|
|
mode: replicated
|
|
replicas: 4
|
|
endpoint_mode: dnsrr
|
|
entrypoint: ["node", "--require", "./opentelemetry.js", "./build/streamer/index.js"]
|
|
env_file:
|
|
- ./.env
|
|
volumes:
|
|
- ./repositories:/app/repositories/
|
|
environment:
|
|
- PORT=5000
|
|
- SERVICE_NAME=Streamer
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- node
|
|
- healthcheck.js
|
|
interval: 10s
|
|
timeout: 10s
|
|
retries: 5
|
|
|
|
redis:
|
|
image: "redis:alpine"
|
|
restart: always
|
|
ports:
|
|
- 127.0.0.1:6379:6379
|
|
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
|
|
- mongosh
|
|
- --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
|
|
env_file:
|
|
- ./.env
|
|
volumes:
|
|
- ./db_backups:/backup
|
|
environment:
|
|
- DB_TYPE=mongo
|
|
- DB_HOST=mongodb
|
|
- DB_DUMP_FREQ=120
|
|
- DB_CLEANUP_TIME=500
|
|
- COMPRESSION=XZ
|
|
- DB_USER=$DB_USERNAME
|
|
- DB_PASS=$DB_PASSWORD
|
|
|
|
restart: always
|
|
volumes:
|
|
mongodb_data_container:
|