services: anonymous_github: logging: driver: json-file options: max-size: "25m" max-file: "4" build: . init: true stop_grace_period: 45s read_only: true tmpfs: - /tmp:size=2147483648,mode=1777 pids_limit: 128 cap_drop: [ALL] security_opt: [no-new-privileges:true] restart: always image: anonymous-github-go:${GO_IMAGE_TAG:-local} ports: - ${EXPOSED_PORT:-5000}:5000 deploy: resources: limits: memory: 3G pids: 128 env_file: - ${APP_ENV_FILE:-./.env} volumes: - ${REPOSITORIES_DIR:-./repositories}:/app/repositories/ environment: - PORT=5000 - REDIS_HOSTNAME=redis - DB_HOSTNAME=mongodb - GOMEMLIMIT=768MiB - ANONYMIZATION_MEMORY_MB=512 healthcheck: test: - CMD - /usr/local/bin/anonymous-server - healthcheck interval: 5s timeout: 5s retries: 3 start_period: 20s depends_on: mongodb: condition: service_healthy redis: condition: service_healthy 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_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: - ${MONGO_BIND_ADDRESS:-127.0.0.1}:27017:27017 command: --quiet healthcheck: test: - CMD - mongosh - --eval - "db.adminCommand('ping')" interval: 10s timeout: 10s retries: 5 mongodb-backup: image: tiredofit/db-backup links: - mongodb env_file: - ${APP_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: