version: '3.4' services: app: image: 'chewingbever/vieter:dev' deploy: mode: 'replicated' replicas: 1 placement: constraints: - 'node.labels.class.vieter==true' labels: - 'traefik.enable=true' - 'traefik.http.routers.vieter.rule=Host(`arch.r8r.be`)' - 'traefik.http.routers.vieter.tls=true' - 'traefik.http.routers.vieter.tls.certresolver=letsEncrypt' - 'traefik.http.services.vieter.loadbalancer.server.port=8000' environment: - 'VIETER_API_KEY_FILE=/run/secrets/vieter_api_key' - 'VIETER_LOG_LEVEL=DEBUG' - 'VIETER_DEFAULT_ARCH=x86_64' - 'VIETER_BASE_IMAGE=ghcr.io/menci/archlinuxarm:base-devel' # 1AM UTC+2 - 'VIETER_GLOBAL_SCHEDULE=0 23' - 'VIETER_MAX_LOG_AGE=120' - 'VIETER_COLLECT_METRICS=1' networks: - 'public' - 'monitoring' secrets: - vieter_api_key volumes: - 'data:/data' agent: image: 'chewingbever/vieter:dev' command: vieter agent user: root healthcheck: disable: true deploy: mode: 'global' environment: - 'VIETER_API_KEY_FILE=/run/secrets/vieter_api_key' - 'VIETER_LOG_LEVEL=INFO' - 'VIETER_ADDRESS=https://arch.r8r.be' - 'VIETER_MAX_CONCURRENT_BUILDS=2' - 'VIETER_ARCH=x86_64' # Poll for builds every two minutes - 'VIETER_POLLING_FREQUENCY=120' secrets: - vieter_api_key volumes: - '/var/run/docker.sock:/var/run/docker.sock' networks: public: external: true monitoring: external: true secrets: vieter_api_key: external: true volumes: data: