version: "3.7" networks: default: external: name: infra services: zebrunner-proxy: image: "nginx:${TAG_NGINX}" container_name: zebrunner-proxy volumes: - "./configuration/zebrunner-proxy/nginx.conf:/etc/nginx/nginx.conf:ro" - "./configuration/zebrunner-proxy/ssl:/etc/nginx/ssl:ro" ports: - "${REPORTING_PORT}:80" # primary HTTP port # - "15672:15672" # RabbitMQ administration, optional # - "5432:5432" # database administration, optional # - "6379:6379" # Redis administration, optional depends_on: - reporting-ui - reporting-service restart: always postgres: image: "qaprosoft/postgres:${TAG_POSTGRES}" container_name: postgres command: postgres -c 'max_connections=200' volumes: - "pgdata-volume:/var/lib/postgresql/data" - "./database/reporting/:/docker-entrypoint-initdb.d" env_file: - configuration/postgres/variables.env restart: always iam-db: image: "qaprosoft/postgres:${TAG_POSTGRES}" container_name: iam-db volumes: - "iam-db-volume:/var/lib/postgresql/data" - "./database/iam/:/docker-entrypoint-initdb.d" env_file: - configuration/iam-db/variables.env restart: always rabbitmq: image: "rabbitmq:${TAG_RABBITMQ}" container_name: rabbitmq volumes: - "./configuration/rabbitmq/definitions:/rabbit-definitions:ro" - "./configuration/rabbitmq/enabled_plugins:/etc/rabbitmq/enabled_plugins:ro" env_file: - configuration/rabbitmq/variables.env restart: always redis: image: "redis:${TAG_REDIS}" container_name: redis command: ["redis-server", "/usr/local/etc/redis/redis.conf"] volumes: - "./configuration/redis/redis.conf:/usr/local/etc/redis/redis.conf:ro" restart: always elasticsearch: image: "elasticsearch:${TAG_ELASTICSEARCH}" container_name: elasticsearch volumes: - "esdata-volume:/usr/share/elasticsearch/data" - "./configuration/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro" environment: - bootstrap.memory_lock=true - LOG4J_FORMAT_MSG_NO_LOOKUPS=true - ES_JAVA_OPTS=-Xmx1024m -Xms512m ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65536 hard: 65536 restart: always logstash: image: "logstash:${TAG_LOGSTASH}" container_name: logstash volumes: - "./configuration/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:ro" - "./configuration/logstash/mapping.json:/mapping.json:ro" - "./configuration/logstash/test-run-data-template.json:/test-run-data-template.json:ro" environment: - LOG4J_FORMAT_MSG_NO_LOOKUPS=true depends_on: - rabbitmq - elasticsearch restart: always reporting-service: image: "zebrunner/reporting-service:${TAG_REPORTING_SERVICE}" container_name: reporting-service volumes: - "assets-data:/opt/assets" env_file: - configuration/reporting-service/variables.env - configuration/_common/rabbitmq.env - configuration/_common/s3.env - configuration/_common/secrets.env depends_on: - postgres - rabbitmq - redis restart: always iam-service: image: "zebrunner/iam-service:${TAG_IAM_SERVICE}" container_name: iam-service env_file: - configuration/iam-service/variables.env - configuration/_common/secrets.env - configuration/_common/rabbitmq.env - configuration/_common/hosts.env depends_on: - iam-db restart: always artifacts-proxy-service: image: "zebrunner/artifacts-proxy-service:${TAG_ARTIFACTS_PROXY_SERVICE}" container_name: artifacts-proxy-service env_file: - configuration/artifacts-proxy-service/variables.env - configuration/_common/rabbitmq.env - configuration/_common/s3.env depends_on: - rabbitmq restart: always mail-service: image: "zebrunner/mail-service:${TAG_MAIL_SERVICE}" container_name: mail-service env_file: - configuration/mail-service/variables.env - configuration/_common/rabbitmq.env - configuration/_common/s3.env depends_on: - postgres - rabbitmq restart: always reporting-ui: image: "zebrunner/reporting-ui:${TAG_REPORTING_UI}" container_name: reporting-ui env_file: - configuration/reporting-ui/variables.env depends_on: - reporting-service restart: always volumes: pgdata-volume: iam-db-volume: esdata-volume: assets-data: