Browse Source

feat: pdf和api单独部署

过卫栋 3 days ago
parent
commit
38bb240995
4 changed files with 34 additions and 4 deletions
  1. 24 0
      docker-compose.api.yml
  2. 4 0
      docker-compose.pdf.yml
  3. 2 0
      docker-compose.yml
  4. 4 4
      docs/pdf-worker-deployment.md

+ 24 - 0
docker-compose.api.yml

@@ -0,0 +1,24 @@
+services:
+  # 纯 API 服务(用于负载均衡扩展)
+  app:
+    build: .
+    container_name: math_cms_app
+    ports:
+      - "5019:8000"
+    env_file:
+      - .env
+    volumes:
+      - ./storage:/app/storage
+      - ./.env:/app/.env
+    restart: unless-stopped
+    stop_grace_period: 30s
+    healthcheck:
+      test: ["CMD-SHELL", "curl -f http://localhost:8000/health || exit 1"]
+      interval: 30s
+      timeout: 10s
+      retries: 3
+      start_period: 40s
+
+networks:
+  default:
+    driver: bridge

+ 4 - 0
docker-compose.pdf.yml

@@ -29,6 +29,7 @@ services:
       - ./storage:/app/storage
       - ./.env:/app/.env
     restart: unless-stopped
+    stop_grace_period: 120s
     depends_on:
       app:
         condition: service_healthy
@@ -55,6 +56,7 @@ services:
       - ./storage:/app/storage
       - ./.env:/app/.env
     restart: unless-stopped
+    stop_grace_period: 120s
     depends_on:
       app:
         condition: service_healthy
@@ -81,6 +83,7 @@ services:
       - ./storage:/app/storage
       - ./.env:/app/.env
     restart: unless-stopped
+    stop_grace_period: 120s
     depends_on:
       app:
         condition: service_healthy
@@ -107,6 +110,7 @@ services:
       - ./storage:/app/storage
       - ./.env:/app/.env
     restart: unless-stopped
+    stop_grace_period: 120s
     depends_on:
       app:
         condition: service_healthy

+ 2 - 0
docker-compose.yml

@@ -30,6 +30,7 @@ services:
       - ./storage:/app/storage
       - ./.env:/app/.env
     restart: unless-stopped
+    stop_grace_period: 60s
     # 队列 worker 健康检查:检查进程是否存在
     healthcheck:
       test: ["CMD-SHELL", "pgrep -f 'queue:work' || exit 1"]
@@ -54,6 +55,7 @@ services:
       - ./storage:/app/storage
       - ./.env:/app/.env
     restart: unless-stopped
+    stop_grace_period: 120s
     # PDF worker 健康检查:检查进程是否存在
     healthcheck:
       test: ["CMD-SHELL", "pgrep -f 'queue:work' || exit 1"]

+ 4 - 4
docs/pdf-worker-deployment.md

@@ -24,9 +24,9 @@
 
 ## 一、PDF 机器需要的软件
 
-- Docker
-- Docker Compose
-- Git
+-   Docker
+-   Docker Compose
+-   Git
 
 ---
 
@@ -108,7 +108,7 @@ docker compose -f docker-compose.pdf.yml logs -f
 docker compose -f docker-compose.pdf.yml restart
 
 # 停止
-docker compose -f docker-compose.pdf.yml down
+docker compose -f docker-compose.pdf.yml down --timeout 120
 ```
 
 ---