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 管理。永远不要把密钥硬编码到配置文件里。这条是铁律。