137 lines
3.7 KiB
YAML
137 lines
3.7 KiB
YAML
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: integration/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: integration/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: integration/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
|