#SPDX-License-Identifier: MIT services: database: build: context: . dockerfile: ./docker/database/Dockerfile restart: unless-stopped environment: - "POSTGRES_DB=augur" - "POSTGRES_USER=${COLLECTOSS_DB_USER:-augur}" - "POSTGRES_PASSWORD=${COLLECTOSS_DB_PASSWORD:-augur}" - "PGDATA=/var/lib/postgresql/data/pgdata" ports: - "${COLLECTOSS_DB_PORT:-5432}:5432" volumes: - augurpostgres:/var/lib/postgresql/data healthcheck: test: [ "CMD-SHELL", "pg_isready -U ${COLLECTOSS_DB_USER:-augur} -d ${COLLECTOSS_DB_NAME:-augur}", ] interval: 10s timeout: 5s retries: 5 redis: image: "redis:alpine" keyman: image: collectoss-keyman restart: unless-stopped build: context: . dockerfile: ./docker/keyman/Dockerfile environment: - REDIS_CONN_STRING=redis://redis:6379 depends_on: - redis user: 3456:3456 # Run as an arbitrary non-root user rabbitmq: image: rabbitmq:4.1-management-alpine environment: - RABBITMQ_DEFAULT_USER=${COLLECTOSS_RABBITMQ_USERNAME:-augur} - RABBITMQ_DEFAULT_PASS=${COLLECTOSS_RABBITMQ_PASSWORD:-password123} - RABBITMQ_DEFAULT_VHOST=${COLLECTOSS_RABBITMQ_VHOST:-collectoss_vhost} volumes: - ./docker/rabbitmq/advanced.config:/etc/rabbitmq/advanced.config:ro core: image: collectoss:latest build: context: . dockerfile: ./docker/backend/${COLLECTOSS_TARGET:-Dockerfile} volumes: - cache:/cache:rw - config:/config:rw - facade:/facade:rw - augur_logs:/logs:rw restart: unless-stopped ports: - 5002:5000 #extra_hosts: # - "host.docker.internal:host-gateway" #Be able to ping services on the local machine environment: - "COLLECTOSS_DB=postgresql+psycopg2://${COLLECTOSS_DB_USER:-augur}:${COLLECTOSS_DB_PASSWORD:-augur}@database:5432/augur" - "COLLECTOSS_DB_SCHEMA_BUILD=1" - COLLECTOSS_FACADE_REPO_DIRECTORY=/facade - COLLECTOSS_LOGS_DIRECTORY=/logs - "COLLECTOSS_FLAGS=$COLLECTOSS_FLAGS" - "COLLECTOSS_GITHUB_API_KEY=${COLLECTOSS_GITHUB_API_KEY}" - "COLLECTOSS_GITLAB_API_KEY=${COLLECTOSS_GITLAB_API_KEY}" - "COLLECTOSS_GITHUB_USERNAME=${COLLECTOSS_GITHUB_USERNAME}" - "COLLECTOSS_GITLAB_USERNAME=${COLLECTOSS_GITLAB_USERNAME}" - COLLECTOSS_DOCKER_DEPLOY=1 - REDIS_CONN_STRING=redis://redis:6379 - RABBITMQ_CONN_STRING=amqp://${COLLECTOSS_RABBITMQ_USERNAME:-augur}:${COLLECTOSS_RABBITMQ_PASSWORD:-password123}@rabbitmq:5672/${COLLECTOSS_RABBITMQ_VHOST:-collectoss_vhost} - CONFIG_LOCATION=/config/config.yml - CONFIG_DATADIR=/config - CACHE_DATADIR=/cache - CACHE_LOCKDIR=/cache - CELERYBEAT_SCHEDULE_DB=/tmp/celerybeat-schedule.db depends_on: database: condition: service_healthy redis: condition: service_started keyman: condition: service_started rabbitmq: condition: service_started user: 2345:2345 # Run as an arbitrary non-root user post_start: # Make sure the user has access to the volumes - command: chmod 777 /facade /logs /config /cache user: root # Flower is a UI that helps more easily monitor running tasks for celery workers. # This wont show you every error from the entire collectoss system, but it should show most of them. # uncomment the section below to use flower #flower: # image: collectoss:latest # restart: unless-stopped # command: # [ "celery", "-A", "collectoss.tasks.init.celery_app.celery_app", "flower", "--max-tasks=1000000" ] # ports: # - 5555:5555 # environment: # - "COLLECTOSS_DB=postgresql+psycopg2://${COLLECTOSS_DB_USER:-augur}:${COLLECTOSS_DB_PASSWORD:-augur}@database:5432/augur" # - REDIS_CONN_STRING=redis://redis:6379 # - RABBITMQ_CONN_STRING=amqp://${COLLECTOSS_RABBITMQ_USERNAME:-augur}:${COLLECTOSS_RABBITMQ_PASSWORD:-password123}@rabbitmq:5672/${COLLECTOSS_RABBITMQ_VHOST:-collectoss_vhost} # depends_on: # - core # - database # - redis # - rabbitmq volumes: augurpostgres: cache: config: facade: augur_logs: