services: app: build: context: . target: app-runtime-local container_name: math_cms_app_local ports: - "5019:8000" env_file: - .env volumes: - ./storage:/app/storage - ./.env:/app/.env restart: unless-stopped healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:8000/health || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 40s queue: build: context: . target: worker-local container_name: math_cms_queue_local command: php artisan queue:work --sleep=3 --tries=3 --max-time=3600 env_file: - .env volumes: - ./storage:/app/storage - ./.env:/app/.env restart: unless-stopped stop_grace_period: 60s depends_on: app: condition: service_healthy healthcheck: test: ["CMD-SHELL", "pgrep -f 'queue:work' || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 10s gotenberg: image: gotenberg/gotenberg:8 container_name: math_cms_gotenberg_local restart: unless-stopped healthcheck: test: ["CMD-SHELL", "curl -fsS http://localhost:3000/health >/dev/null || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 20s pdf-worker: build: context: . target: worker-local container_name: math_cms_pdf_local command: php artisan queue:work --queue=pdf --sleep=3 --tries=2 --max-time=300 --max-jobs=10 env_file: - .env volumes: - ./storage:/app/storage - ./.env:/app/.env restart: unless-stopped stop_grace_period: 120s depends_on: app: condition: service_healthy gotenberg: condition: service_healthy healthcheck: test: ["CMD-SHELL", "pgrep -f 'queue:work' || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 10s logic-worker: build: context: . target: worker-local container_name: math_cms_logic_local command: php artisan queue:work --queue=logic --sleep=1 --tries=2 --max-time=600 --max-jobs=50 env_file: - .env volumes: - ./storage:/app/storage - ./.env:/app/.env restart: unless-stopped stop_grace_period: 120s depends_on: app: condition: service_healthy gotenberg: condition: service_healthy healthcheck: test: ["CMD-SHELL", "pgrep -f 'queue:work' || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 10s networks: default: driver: bridge