CI/CD 與運維自動化
Docker、GitHub Actions、Nginx —— 一條指令生成生產級配置
DevOps 配置,每次都是一場噩夢
YAML 地獄 + 環境不一致 + 配置調半天
GitHub Actions 的 YAML 縮進錯一格,整條 pipeline 就掛了。報錯資訊一句 "syntax error",你得盯著幾百行 YAML 找那個多餘的空格。
"我本地跑得好好的啊" —— 經典名言。Docker 鏡像版本不對、環境變數沒傳進去、連接埠映射搞反了,每次部署都是一場冒險。
Nginx 配置從網上抄了一段,HTTPS 憑證不生效,反向代理 502,access log 一看全是 404。折騰三個小時,發現是 proxy_pass 少了個斜杠。
OpenClaw 給你生成生產級配置
不是範本拼湊,是理解你的專案後定製
OpenClaw 分析你的專案結構 —— 用什麼語言、什麼框架、依賴哪些服務、需要什麼環境變數,然後生成針對性的配置。
生成的 Dockerfile 不是隨便拉個 latest 鏡像那種。多階段構建、鏡像瘦身、安全最佳實踐,全給你考慮好了。
GitHub Actions 的 workflow 也不是只跑個 npm test。快取策略、並行任務、條件部署、Secret 管理,生產環境該有的都有。最關鍵的是 —— 生成的 YAML 縮進絕對不會錯。
DevOps Prompt,複製就能用
Docker、CI/CD、Nginx 三件套,每條都是生產級配置。
Docker + docker-compose 全套配置
黃金指令
分析這個 Node.js 專案,生成完整的 Docker 配置:
Dockerfile 要求:
1. 多階段構建(builder + production)
2. 使用 Alpine 基礎鏡像,最終鏡像盡量小
3. 非 root 使用者執行
4. 合理利用快取層(先 COPY package.json 再 npm install)
5. 添加 healthcheck
docker-compose.yml 要求:
1. 應用服務 + 資料庫(PostgreSQL) + Redis
2. 區分 dev 和 prod 環境(用 profiles 或 override 檔案)
3. 資料卷持久化
4. 網路隔離
5. 環境變數用 .env 檔案管理
附帶 .dockerignore 和必要的說明。
這條 Prompt 生成的 Docker 配置是真正能上生產的,不是網上那種 FROM node:latest 一把梭的教程版本。多階段構建能把鏡像從 1GB 壓到 100MB 以下。
GitHub Actions CI/CD 全流程
黃金指令
為這個專案配置完整的 GitHub Actions CI/CD 流水線。
工作流要求:
1. CI(每次 push 和 PR 觸發):
- 程式碼檢查:ESLint / Prettier
- 單元測試 + 覆蓋率報告
- 構建驗證
- 依賴安全掃描
2. CD(合併到 main 時觸發):
- 構建 Docker 鏡像並推送到 ECR
- 部署到 AWS ECS(或 EC2)
- 部署後自動跑冒煙測試
- 失敗自動回滾
3. 優化:
- npm/pip 快取加速
- 測試並行化
- 只在相關檔案變更時觸發對應步驟
所有密鑰用 GitHub Secrets 管理。
手寫一套完整的 CI/CD 配置至少要半天,還得反複調試。這條 Prompt 一次生成,基本跑通只需要改幾個變數名。
Nginx 反向代理 + HTTPS + 負載均衡
進階技巧
生成一套生產級的 Nginx 配置:
1. 反向代理:
- 前端靜態資源(/)→ 本地目錄
- API 請求(/api/)→ 後端服務(upstream)
- WebSocket 支援(/ws/)
2. HTTPS 配置:
- Let's Encrypt 憑證(Certbot 自動續期)
- HTTP 自動跳轉 HTTPS
- HSTS、OCSP Stapling
- TLS 1.2+ only,安全密碼套件
3. 負載均衡:
- upstream 多後端實例
- 健康檢查
- least_conn 策略
4. 效能優化:
- Gzip 壓縮
- 靜態資源快取頭
- 請求限速(防 DDoS)
附帶 Certbot 安裝和憑證申請指令。
Nginx 配置是最容易出幺蛾子的。proxy_pass 末尾要不要斜杠、location 匹配優先級、upstream 健康檢查 —— 這些坑 AI 都幫你避開了。
配置生成:OpenClaw vs 手寫 YAML
不是說手寫不行,而是有更聰明的方式。
OpenClaw
- 根據專案結構定製配置,不是通用範本
- 包含安全最佳實踐(非 root、Secret 管理、TLS 配置)
- 生成的 YAML 格式保證正確,不會縮進出錯
- 一條 Prompt 搞定全套,Docker + CI/CD + Nginx
VS
手寫 YAML / 網上抄
- 從 Stack Overflow 抄一段,版本可能已過時
- 安全配置經常遺漏,上線才發現漏洞
- YAML 縮進調半天,一個空格毀所有
- 東拼西湊,配置之間可能互相衝突
真實場景:新專案 DevOps 從零搭建
新專案要上線,運維只有你一個人
後端 Node.js + PostgreSQL + Redis,前端 React,需要 Docker 容器化、GitHub Actions CI/CD、Nginx 反向代理、HTTPS。老闆說一週之內搞定。
OpenClaw
三條 Prompt 跑完,Docker 全套、CI/CD 流水線、Nginx 配置全部就位。花半天時間改幾個專案特定的變數,跑通測試。第二天就開始部署測試環境,一週不到全搞定。
自己從頭搞
光 Docker 多階段構建就研究了兩天,GitHub Actions 的快取配置調了一天,Nginx 的 HTTPS 配置折騰到凌晨。一週過去了,還在調 CI 的報錯。老闆開始問進度了。
DevOps 配置小貼士
生成配置後先在本地跑一遍。Docker 用 docker-compose up --build 測試,GitHub Actions 用 act 在本地模擬執行。
讓 OpenClaw 在配置裡加上詳細註解。等你三個月後回來改配置,你會感謝當時加了註解的自己。
生成的配置裡如果涉及密鑰、密碼,確保用環境變數或 Secret 管理。永遠不要把密鑰硬編碼到配置檔案裡。這條是鐵律。