Browse Source

feat: 部署文档常用命令

大侠咬超人 4 days ago
parent
commit
ac10598643
1 changed files with 180 additions and 0 deletions
  1. 180 0
      docs/ops-commands.md

+ 180 - 0
docs/ops-commands.md

@@ -0,0 +1,180 @@
+# 运维常用命令
+
+> 服务地址:`http://<内网IP>:5019`
+
+## 1. 服务管理
+
+```bash
+# 启动所有服务
+docker compose up -d
+
+# 停止所有服务
+docker compose down
+
+# 重启所有服务
+docker compose restart
+
+# 重启单个服务
+docker compose restart app
+docker compose restart queue
+docker compose restart pdf-worker
+
+# 查看运行状态
+docker compose ps
+```
+
+## 2. 日志查看
+
+```bash
+# 查看所有日志(实时)
+docker compose logs -f
+
+# 查看指定服务日志
+docker compose logs -f app          # Web 服务
+docker compose logs -f queue        # 队列服务
+docker compose logs -f pdf-worker   # PDF 生成服务
+
+# 查看最近 100 行日志
+docker compose logs --tail=100 app
+
+# 查看 Laravel 日志
+tail -f storage/logs/laravel.log
+```
+
+## 3. 代码更新部署
+
+```bash
+# 1. 拉取最新代码
+git pull
+
+# 2. 重新构建并启动
+docker compose down
+docker compose build
+docker compose up -d
+
+# 或一键操作
+docker compose up -d --build
+```
+
+## 4. 缓存清理
+
+```bash
+# 进入容器清理 Laravel 缓存
+docker exec math_cms_app php artisan optimize:clear
+
+# 重启队列(代码更新后必须)
+docker compose restart queue pdf-worker
+
+# 清理临时文件
+rm -rf storage/app/temp/*
+```
+
+## 5. 问题排查
+
+```bash
+# 查看容器资源使用
+docker stats
+
+# 进入容器调试
+docker exec -it math_cms_app sh
+
+# 测试数据库连接
+docker exec math_cms_app php artisan db:show
+
+# 测试 Redis 连接
+docker exec math_cms_app php artisan tinker --execute="Redis::ping()"
+
+# 测试 Chrome(PDF 生成)
+docker exec math_cms_app chromium-browser --version
+
+# 查看队列状态
+docker exec math_cms_app php artisan queue:monitor
+```
+
+## 6. 紧急处理
+
+```bash
+# CPU 满载 - 停止 PDF 服务
+docker compose stop pdf-worker
+
+# 强制杀死所有 Chrome 进程
+docker exec math_cms_pdf pkill -9 chromium
+
+# 清理临时文件
+docker exec math_cms_pdf rm -rf /tmp/chrome-profile-*
+docker exec math_cms_pdf rm -rf /tmp/exam_pdf_*
+
+# 重启 PDF 服务
+docker compose restart pdf-worker
+```
+
+## 7. 健康检查
+
+```bash
+# 检查 Web 服务
+curl http://localhost:5019/health
+
+# 检查容器状态
+docker compose ps
+
+# 检查容器健康状态
+docker inspect --format='{{.State.Health.Status}}' math_cms_app
+```
+
+## 8. 备份与恢复
+
+```bash
+# 备份日志
+cp -r storage/logs storage/logs_backup_$(date +%Y%m%d)
+
+# 备份上传文件
+cp -r storage/app/public storage/app/public_backup_$(date +%Y%m%d)
+```
+
+## 9. 定时任务(加入 crontab)
+
+```bash
+# 清理临时文件(每小时)
+0 * * * * cd /path/to/math_cms && rm -rf storage/app/temp/* 2>/dev/null
+
+# 清理旧日志(每天凌晨 3 点)
+0 3 * * * find /path/to/math_cms/storage/logs -name "*.log" -mtime +7 -delete
+```
+
+## 10. 容器资源限制
+
+```bash
+# 查看资源限制
+docker inspect math_cms_pdf --format='{{.HostConfig.Memory}}'
+
+# 临时调整资源限制
+docker update --cpus=1 --memory=1g math_cms_pdf
+```
+
+---
+
+## 服务架构
+
+```
+┌─────────────────────────────────────────────────┐
+│              Docker Compose                     │
+│  ┌─────────────┐ ┌───────────┐ ┌─────────────┐  │
+│  │ math_cms_app│ │math_cms_  │ │math_cms_pdf │  │
+│  │   (Web)     │ │  queue    │ │(PDF Worker) │  │
+│  │   :5019     │ │           │ │ CPU:2 Mem:2G│  │
+│  └─────────────┘ └───────────┘ └─────────────┘  │
+└─────────────────────────────────────────────────┘
+         │               │               │
+         └───────────────┴───────────────┘
+                         │
+          ┌──────────────┴──────────────┐
+          ▼                             ▼
+    ┌──────────┐                  ┌──────────┐
+    │  Redis   │                  │  MySQL   │
+    │ (阿里云)  │                  │ (阿里云)  │
+    └──────────┘                  └──────────┘
+```
+
+## 联系方式
+
+如有问题请联系开发团队。