version: "3.8" networks: gitea-network: driver: bridge services: gitea: build: ./gitea container_name: gitea-test 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 rabbitmq: image: rabbitmq:3.13.7-management container_name: rabbitmq-test 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 gitea-publisher: build: context: . dockerfile: gitea-events-rabbitmq-publisher/Dockerfile${GIWTF_IMAGE_SUFFIX} container_name: gitea-publisher networks: - gitea-network depends_on: gitea: condition: service_started rabbitmq: condition: service_healthy environment: - RABBITMQ_HOST=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 workflow-pr: build: context: . dockerfile: workflow-pr/Dockerfile${GIWTF_IMAGE_SUFFIX} container_name: workflow-pr networks: - gitea-network depends_on: gitea: condition: service_started 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://gitea-test:3000", "-url", "amqps://rabbitmq-test:5671", "-config", "/etc/workflow-pr.json", "-repo-path", "/var/lib/workflow-pr/repos" ] restart: unless-stopped mock-obs: build: ./mock-obs container_name: mock-obs networks: - gitea-network ports: - "8080:8080" volumes: - ./mock-obs/responses:/app/responses:z # Use :z for shared SELinux label restart: unless-stopped obs-staging-bot: build: context: . dockerfile: obs-staging-bot/Dockerfile${GIWTF_IMAGE_SUFFIX} container_name: obs-staging-bot networks: - gitea-network depends_on: gitea: condition: service_started mock-obs: condition: service_started environment: - OBS_USER=mock - OBS_PASSWORD=mock-long-password volumes: - ./gitea-data:/gitea-data:ro,z command: - "-debug" - "-gitea-url=http://gitea-test:3000" - "-obs=http://mock-obs:8080" - "-obs-web=http://mock-obs:8080" restart: unless-stopped