version: "3.8" networks: gitea-network: driver: bridge services: gwf-gitea-test: build: ./gitea container_name: gwf-gitea-test init: true environment: - GITEA_WORK_DIR=/var/lib/gitea networks: - gitea-network ports: # Map the HTTP and SSH ports defined in your app.ini - "3000:3000" - "3022:3022" volumes: # Persist Gitea's data (repositories, sqlite db, etc.) to a local directory # The :z flag allows sharing between containers - ./gitea-data:/var/lib/gitea:z # Persist Gitea's logs to a local directory - ./gitea-logs:/var/log/gitea:Z restart: unless-stopped userns_mode: "keep-id:uid=497,gid=483" user: "497:497" logging: driver: "k8s-file" options: path: "logs/gwf-gitea-test.log" gwf-rabbitmq: image: rabbitmq:3.13.7-management container_name: gwf-rabbitmq-test init: true healthcheck: test: ["CMD", "rabbitmq-diagnostics", "check_running", "-q"] interval: 30s timeout: 30s retries: 3 networks: - gitea-network ports: # AMQP protocol port with TLS - "5671:5671" # HTTP management UI - "15672:15672" volumes: # Persist RabbitMQ data - ./rabbitmq-data:/var/lib/rabbitmq:Z # Mount TLS certs - ./rabbitmq-config/certs:/etc/rabbitmq/certs:Z # Mount rabbitmq config - ./rabbitmq-config/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:Z # Mount exchange definitions - ./rabbitmq-config/definitions.json:/etc/rabbitmq/definitions.json:Z restart: unless-stopped userns_mode: "keep-id" logging: driver: "k8s-file" options: path: "logs/gwf-rabbitmq-test.log" gwf-gitea-publisher: build: context: .. dockerfile: integration/gitea-events-rabbitmq-publisher/Dockerfile${GIWTF_IMAGE_SUFFIX} container_name: gwf-gitea-publisher init: true networks: - gitea-network depends_on: gwf-gitea-test: condition: service_started gwf-rabbitmq: condition: service_healthy environment: - RABBITMQ_HOST=gwf-rabbitmq-test - RABBITMQ_USERNAME=gitea - RABBITMQ_PASSWORD=gitea - SSL_CERT_FILE=/usr/share/pki/trust/anchors/gitea-rabbitmq-ca.crt command: [ "-listen", "0.0.0.0:8002", "-topic-domain", "suse", "-debug" ] restart: unless-stopped logging: driver: "k8s-file" options: path: "logs/gwf-gitea-publisher.log" gwf-workflow-pr: build: context: .. dockerfile: integration/workflow-pr/Dockerfile${GIWTF_IMAGE_SUFFIX} container_name: gwf-workflow-pr init: true networks: - gitea-network healthcheck: test: ["CMD-SHELL", "pgrep workflow-pr && [ $$(awk '{print $22}' /proc/$$(pgrep workflow-pr)/stat) -lt $$(($$(awk '{print $1}' /proc/uptime | cut -d. -f1)*100 - 1000)) ]"] interval: 5s timeout: 5s retries: 5 depends_on: gwf-gitea-test: condition: service_started gwf-rabbitmq: condition: service_healthy environment: - AMQP_USERNAME=gitea - AMQP_PASSWORD=gitea - SSL_CERT_FILE=/usr/share/pki/trust/anchors/gitea-rabbitmq-ca.crt volumes: - ./gitea-data:/var/lib/gitea:ro,z - ./workflow-pr/workflow-pr.json:/etc/workflow-pr.json:ro,z - ./workflow-pr-repos:/var/lib/workflow-pr/repos:Z command: [ "-check-on-start", "-debug", "-gitea-url", "http://gwf-gitea-test:3000", "-url", "amqps://gwf-rabbitmq-test:5671", "-config", "/etc/workflow-pr.json", "-repo-path", "/var/lib/workflow-pr/repos" ] restart: unless-stopped logging: driver: "k8s-file" options: path: "logs/gwf-workflow-pr.log" gwf-testclient: build: context: . dockerfile: Dockerfile.gwf-testclient container_name: gwf-testclient init: true dns_search: . networks: - gitea-network environment: - PYTEST_HTTPSERVER_HOST=0.0.0.0 - PYTEST_HTTPSERVER_PORT=8080 volumes: - ..:/opt/project:z command: sleep infinity logging: driver: "k8s-file" options: path: "logs/gwf-testclient.log" gwf-obs-staging-bot: build: context: .. dockerfile: integration/obs-staging-bot/Dockerfile${GIWTF_IMAGE_SUFFIX} container_name: gwf-obs-staging-bot init: true networks: - gitea-network depends_on: gwf-workflow-pr: condition: service_started environment: - OBS_USER=mock - OBS_PASSWORD=mock-long-password - AUTOGITS_STAGING_BOT_POLL_INTERVAL=6s volumes: - ./gitea-data:/gitea-data:ro,z command: - "-debug" - "-gitea-url=http://gwf-gitea-test:3000" - "-obs=http://gwf-testclient:8080" - "-obs-web=http://gwf-testclient:8080" restart: unless-stopped logging: driver: "k8s-file" options: path: "logs/gwf-obs-staging-bot.log"