|
|
@@ -0,0 +1,127 @@
|
|
|
+services:
|
|
|
+ # 主应用(Web API 服务)- 用于渲染 HTML
|
|
|
+ app:
|
|
|
+ build: .
|
|
|
+ container_name: math_cms_app
|
|
|
+ ports:
|
|
|
+ - "8000: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
|
|
|
+
|
|
|
+ # PDF Worker 1
|
|
|
+ pdf-worker-1:
|
|
|
+ build: .
|
|
|
+ container_name: pdf_worker_1
|
|
|
+ command: php artisan queue:work --queue=pdf --sleep=3 --tries=3 --max-time=300 --max-jobs=10
|
|
|
+ env_file:
|
|
|
+ - .env
|
|
|
+ volumes:
|
|
|
+ - ./storage:/app/storage
|
|
|
+ - ./.env:/app/.env
|
|
|
+ restart: unless-stopped
|
|
|
+ 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
|
|
|
+ deploy:
|
|
|
+ resources:
|
|
|
+ limits:
|
|
|
+ cpus: '1'
|
|
|
+ memory: 1536M
|
|
|
+
|
|
|
+ # PDF Worker 2
|
|
|
+ pdf-worker-2:
|
|
|
+ build: .
|
|
|
+ container_name: pdf_worker_2
|
|
|
+ command: php artisan queue:work --queue=pdf --sleep=3 --tries=3 --max-time=300 --max-jobs=10
|
|
|
+ env_file:
|
|
|
+ - .env
|
|
|
+ volumes:
|
|
|
+ - ./storage:/app/storage
|
|
|
+ - ./.env:/app/.env
|
|
|
+ restart: unless-stopped
|
|
|
+ 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
|
|
|
+ deploy:
|
|
|
+ resources:
|
|
|
+ limits:
|
|
|
+ cpus: '1'
|
|
|
+ memory: 1536M
|
|
|
+
|
|
|
+ # PDF Worker 3
|
|
|
+ pdf-worker-3:
|
|
|
+ build: .
|
|
|
+ container_name: pdf_worker_3
|
|
|
+ command: php artisan queue:work --queue=pdf --sleep=3 --tries=3 --max-time=300 --max-jobs=10
|
|
|
+ env_file:
|
|
|
+ - .env
|
|
|
+ volumes:
|
|
|
+ - ./storage:/app/storage
|
|
|
+ - ./.env:/app/.env
|
|
|
+ restart: unless-stopped
|
|
|
+ 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
|
|
|
+ deploy:
|
|
|
+ resources:
|
|
|
+ limits:
|
|
|
+ cpus: '1'
|
|
|
+ memory: 1536M
|
|
|
+
|
|
|
+ # PDF Worker 4
|
|
|
+ pdf-worker-4:
|
|
|
+ build: .
|
|
|
+ container_name: pdf_worker_4
|
|
|
+ command: php artisan queue:work --queue=pdf --sleep=3 --tries=3 --max-time=300 --max-jobs=10
|
|
|
+ env_file:
|
|
|
+ - .env
|
|
|
+ volumes:
|
|
|
+ - ./storage:/app/storage
|
|
|
+ - ./.env:/app/.env
|
|
|
+ restart: unless-stopped
|
|
|
+ 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
|
|
|
+ deploy:
|
|
|
+ resources:
|
|
|
+ limits:
|
|
|
+ cpus: '1'
|
|
|
+ memory: 1536M
|
|
|
+
|
|
|
+networks:
|
|
|
+ default:
|
|
|
+ driver: bridge
|