All checks were successful
CD Pipeline / deploy (push) Successful in 1m13s
根因:cd.yaml sync 模式用 `docker compose restart`,對「不存在的容器」 直接報錯 → 任何外力(人工 docker rm、orphan 清理、別專案連動)清掉容器後, 下次 sync 部署 100% 失敗 → 健康檢查 5 連 502。 修法: - sync 模式改 `docker compose up -d --no-deps`:image 未變時對既存容器 no-op(觸發熱掛載),對不存在則自動 create - 緊急回滾 step 同步從 `docker restart momo-pro-system ...` 改 `compose up -d`, 否則容器不存在時連回滾都救不回 驗證:2026-04-28 15:33 跑 P0 救急已成功讓 4/4 容器 healthy + HTTP 200。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.8 KiB
2.8 KiB
EwoooC 運維與自動化手冊 (DevOps Handbook)
🌐 伺服器連線
| 環境 | 主機 | 指令 |
|---|---|---|
| 正式 (EwoooC) | 192.168.0.188 | ssh -J wooo@192.168.0.110 ollama@192.168.0.188 |
| 周邊 (UAT) | 192.168.0.110 | ssh wooo@192.168.0.110 |
| 安全 (Kali) | 192.168.0.112 | ssh kali@192.168.0.112 |
🐋 Docker & Docker Compose 指令 (188 主機)
執行路徑:/home/ollama/momo-pro
常用操作
- 查看狀態:
docker ps | grep momo - 查看日誌:
docker logs -f momo-pro-system --tail 100 - 重啟主應用:
docker restart momo-pro-system - 全面啟動:
docker compose up -d - 進入資料庫:
docker exec -it momo-db psql -U momo
影像管理
- 重建影像:
docker compose build --no-cache momo-pro-system - 清理過期資源:
docker system prune -f
🌐 Nginx 反向代理 (110 主機)
配置路徑:/etc/nginx/sites-enabled/momo
- 重新載入:
sudo systemctl reload nginx - 語法檢查:
sudo nginx -t
🤖 n8n 工作流程管理 (188 主機)
- 進入容器:
docker exec -it n8n /bin/sh - 手動執行 Workflow:
docker exec n8n n8n execute --id=<workflow_id> - 列出 Workflow:
docker exec n8n n8n list:workflow
❄️ K8s 相關指令 (已撤除,備份存檔)
- 查看 Pod:
kubectl get pods -n momo - 重啟 Deployment:
kubectl rollout restart deployment/momo-app -n momo - 查看日誌:
kubectl logs -f deployment/momo-app -n momo
🏥 健康檢查與自動修復
監控腳本: /home/wooo/scripts/domain-health-monitor.sh (於 110 執行)
頻率: 每 5 分鐘
https://mo.wooo.work/health-> 200https://momo.wooo.work/health-> 200https://monitor.wooo.work/-> 200https://registry.wooo.work/v2/-> 401
🆘 故障排除 (Troubleshooting) - 2026-04-28 實戰總結
1. 網站 502 Bad Gateway (Nginx 找不到後端)
- 原因: 110 與 188 之間的 SSH 隧道中斷。
- 檢查: 在 110 執行
curl -I http://127.0.0.1:5003/health。 - 修復: 在 110 執行
ssh -fN -L 5003:127.0.0.1:5003 ollama@192.168.0.188重啟隧道。
2. CI/CD 報錯 parent snapshot ... not found
- 原因: Docker Buildx 快取損壞。
- 修復: 在
.gitea/workflows/cd.yaml中使用docker compose build --no-cache。
3. CI/CD 報錯 No such container: momo-pro-system
- 原因: Sync 模式使用硬編碼容器名,但容器可能已被重建或改名。
- 修復: 使用
docker compose restart <service_name>取代直接重啟容器。
4. Telegram Bot 代碼更新無效 (幽靈容器)
- 原因:
docker-compose.yml遺漏了/app/routes的 Volume 掛載。 - 檢查:
docker inspect momo-telegram-bot | jq '.[0].Mounts'。 - 修復: 確保
volumes段落包含- ./routes:/app/routes:ro。