services: backend: image: frappe/frappe-worker:${FRAPPE_VERSION} environment: DB_HOST: db DB_PORT: 3306 REDIS_CACHE: redis:6379/0 REDIS_QUEUE: redis:6379/1 REDIS_SOCKETIO: redis:6379/2 SOCKETIO_PORT: 9000 volumes: - sites:/home/frappe/frappe-bench/sites depends_on: db: condition: service_healthy db: image: mariadb:10.6 healthcheck: test: mysqladmin ping -h localhost --password=${DB_PASSWORD} interval: 1s retries: 15 command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci - --skip-character-set-client-handshake - --skip-innodb-read-only-compressed environment: MYSQL_ROOT_PASSWORD: ${DB_PASSWORD} volumes: - db:/var/lib/mysql redis: image: redis:6.2-alpine volumes: - redis:/data frontend: image: frappe/frappe-nginx:${FRAPPE_VERSION} depends_on: - backend - websocket environment: BACKEND: backend:8000 SOCKETIO: websocket:9000 FRAPPE_SITE_NAME_HEADER: $$host volumes: - sites:/usr/share/nginx/html/sites labels: - traefik.enable=true - traefik.http.services.frontend.loadbalancer.server.port=80 - traefik.http.routers.frontend-http.entrypoints=web - traefik.http.routers.frontend-http.rule=HostRegexp(`{any:.+}`) proxy: image: traefik:2.5 command: - --providers.docker - --providers.docker.exposedbydefault=false - --entrypoints.web.address=:80 ports: - 80:80 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro userns_mode: host websocket: image: frappe/frappe-socketio:${FRAPPE_VERSION} depends_on: - backend volumes: - sites:/home/frappe/frappe-bench/sites queue-short: image: frappe/frappe-worker:${FRAPPE_VERSION} command: bench worker --queue short volumes: - sites:/home/frappe/frappe-bench/sites depends_on: - backend queue-default: image: frappe/frappe-worker:${FRAPPE_VERSION} command: bench worker --queue default volumes: - sites:/home/frappe/frappe-bench/sites depends_on: - backend queue-long: image: frappe/frappe-worker:${FRAPPE_VERSION} command: bench worker --queue long volumes: - sites:/home/frappe/frappe-bench/sites depends_on: - backend scheduler: image: frappe/frappe-worker:${FRAPPE_VERSION} command: bench schedule volumes: - sites:/home/frappe/frappe-bench/sites depends_on: - backend volumes: sites: db: redis: