name: roomote services: worker-image: image: ${DOCKER_WORKER_IMAGE:-roomote-worker:local} container_name: roomote-worker-image build: context: . dockerfile: apps/worker/Dockerfile platform: ${DOCKER_WORKER_PLATFORM:-linux/amd64} command: ['true'] restart: 'no' controller: environment: DOCKER_WORKER_IMAGE: ${DOCKER_WORKER_IMAGE:-roomote-worker:local} DOCKER_WORKER_PLATFORM: ${DOCKER_WORKER_PLATFORM:-linux/amd64} DOCKER_WORKER_NETWORK: ${DOCKER_WORKER_NETWORK:-roomote_worker} DOCKER_WORKER_RELEASE_PATH: ${DOCKER_WORKER_RELEASE_PATH:-/roomote/releases/worker-current.tar.gz} DOCKER_WORKER_CPU_LIMIT: ${DOCKER_WORKER_CPU_LIMIT:-2} DOCKER_WORKER_MEMORY_LIMIT: ${DOCKER_WORKER_MEMORY_LIMIT:-4g} DOCKER_TASK_DAEMON_MEMORY_LIMIT: ${DOCKER_TASK_DAEMON_MEMORY_LIMIT:-8g} DOCKER_WORKER_PIDS_LIMIT: ${DOCKER_WORKER_PIDS_LIMIT:-512} DOCKER_WORKER_DISK_LIMIT: ${DOCKER_WORKER_DISK_LIMIT:-20g} DOCKER_WORKER_ALLOW_UNBOUNDED_DISK: ${DOCKER_WORKER_ALLOW_UNBOUNDED_DISK:-false} DOCKER_WORKER_LOG_MAX_SIZE: ${DOCKER_WORKER_LOG_MAX_SIZE:-10m} DOCKER_WORKER_LOG_MAX_FILES: ${DOCKER_WORKER_LOG_MAX_FILES:-3} DOCKER_WORKER_EGRESS_POLICY: ${DOCKER_WORKER_EGRESS_POLICY:-internet} DOCKER_STANDBY_MAX_COUNT: ${DOCKER_STANDBY_MAX_COUNT:-10} DOCKER_STANDBY_MAX_AGE_HOURS: ${DOCKER_STANDBY_MAX_AGE_HOURS:-24} volumes: - /var/run/docker.sock:/var/run/docker.sock depends_on: worker-image: condition: service_completed_successfully bullmq: environment: DOCKER_STANDBY_MAX_COUNT: ${DOCKER_STANDBY_MAX_COUNT:-10} DOCKER_STANDBY_MAX_AGE_HOURS: ${DOCKER_STANDBY_MAX_AGE_HOURS:-24} # The settings "Validate environment" checks run in this service (it # holds the Docker socket), so it needs the same image/release config # as the controller. DOCKER_WORKER_IMAGE: ${DOCKER_WORKER_IMAGE:-roomote-worker:local} DOCKER_WORKER_RELEASE_PATH: ${DOCKER_WORKER_RELEASE_PATH:-/roomote/releases/worker-current.tar.gz} volumes: - /var/run/docker.sock:/var/run/docker.sock