|
|
@@ -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 │
|
|
|
+ │ (阿里云) │ │ (阿里云) │
|
|
|
+ └──────────┘ └──────────┘
|
|
|
+```
|
|
|
+
|
|
|
+## 联系方式
|
|
|
+
|
|
|
+如有问题请联系开发团队。
|