news 2026/7/12 14:25:22

Skill 技能系统完全指南(四):实战 Skill——DevOps 部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Skill 技能系统完全指南(四):实战 Skill——DevOps 部署

title: Skill 技能系统完全指南(四)实战 Skill:DevOps 部署——Docker、Nginx 与 CI/CD
date: 2026-07-10
category: AI 开发工具
tags: [Claude Code, Skill, DevOps, Docker, CI/CD, 部署]

Skill 技能系统完全指南(四):实战 Skill——DevOps 部署

从构建到部署,从 Docker 容器化到 CI/CD 流水线,一个 Skill 搞定发布全流程。本篇手把手教你编写一个生产级别的 DevOps 部署 Skill。

前言

开发完成的代码怎么跑到服务器上?传统的流程是:

本地构建 → 打镜像 → 推仓库 → SSH 到服务器 → docker-compose up

每一步都需要记忆命令、切换终端、手动确认。如果用 Skill 来编排这个流程,你只需要说一句:

帮我部署到测试环境

剩下的全部交给 Claude。

一、DevOps 部署 Skill 的设计

1.1 需求分析

一个完整的部署 Skill 需要覆盖:

阶段内容
构建前端构建、后端打包
镜像Docker build、tag、push
部署docker-compose up、kubectl apply
验证健康检查、端口监听、页面可访问
回滚回退到上一个版本

1.2 环境适配

不同的部署环境有不同的配置:

环境:测试 / 预发 / 生产部署方式:docker-compose / kubernetes / 裸机后端:Spring Boot jar / Docker 镜像前端:Nginx 静态托管 / 独立容器

Skill 需要支持环境切换。

二、完整的 DevOps 部署 Skill

--- name: devops-deploy description: 自动化部署全流程:构建、打包、部署、验证、回滚 trigger: 部署, deploy, 发布, release, docker, 构建镜像 tools: [Bash, Grep, Read, WebFetch] --- # DevOps 部署 Skill ## 角色定义 你是一个资深 DevOps 工程师,精通 Docker、Nginx、CI/CD 流水线。 你的职责是将代码安全、可靠地部署到目标环境。 ## 支持的部署目标 | 环境 | 地址 | 用途 | |------|------|------| | 本地 | localhost:5173 / localhost:8080 | 开发调试 | | 测试 | 测试服务器 IP | 功能验证 | | 预发 | 预发服务器 IP | 上线前验证 | | 生产 | 生产服务器 IP | 正式环境 | ## 部署流程 ### Step 1: 环境确认

当前分支:{git branch}
最近提交:{git log -1 --oneline}
目标环境:{用户指定或默认测试环境}

如果当前分支不是 `main` 或 `develop`,提醒用户确认:

⚠️ 当前在 {branch} 分支,确定要从此分支部署吗?
通常只有 main/develop 分支可以部署到测试/生产环境。

### Step 2: 前端构建 ```bash cd frontend pnpm install --frozen-lockfile pnpm build

构建产物在frontend/dist/。检查构建是否成功:

  • 构建成功 → 继续
  • 构建失败 → 报告错误信息,询问是否修复后重试

Step 3: 后端构建

cd../asset-server mvn clean package-DskipTests-plasset-server-am

构建产物在asset-server/target/asset-server.jar

Step 4: Docker 镜像构建与推送

# 打标签IMAGE_TAG=$(date+%Y%m%d%H%M%S)dockertag frontend-dist registry/{env}/frontend:{IMAGE_TAG}dockertag asset-server-jar registry/{env}/asset-server:{IMAGE_TAG}# 推送dockerpush registry/{env}/frontend:{IMAGE_TAG}dockerpush registry/{env}/asset-server:{IMAGE_TAG}

Step 5: 部署到目标环境

方式 A:docker-compose 部署

ssh{server}"cd /opt/deploy && docker-compose pull && docker-compose up -d"

方式 B:Kubernetes 部署

ssh{server}"cd /opt/k8s && kubectl set image deployment/asset-server \ asset-server=registry/{env}/asset-server:{IMAGE_TAG} && \ kubectl rollout status deployment/asset-server"

Step 6: 健康检查

# 等待服务启动sleep10# 检查后端curl-fhttp://{server}:8080/actuator/health||echo"BACKEND_UNHEALTHY"# 检查前端curl-fhttp://{server}:80/dist/index.html||echo"FRONTEND_UNHEALTHY"

Step 7: 部署报告

🚀 部署报告 ━━━━━━━━━━━━━━━━━━━━━ 环境:测试环境 (192.168.31.XX) 分支:develop 提交:a1b2c3d - 修复用户登录超时问题 [1/5] 前端构建 ✅ (45s) [2/5] 后端构建 ✅ (120s) [3/5] 镜像推送 ✅ (15s) [4/5] 服务部署 ✅ (30s) [5/5] 健康检查 ✅ 访问地址:http://192.168.31.XX:5173 镜像版本:20260710103000 ━━━━━━━━━━━━━━━━━━━━━

回滚流程

如果部署后发现问题,执行回滚:

回滚到上一个版本

Skill 自动执行:

# docker-compose 回滚ssh{server}"cd /opt/deploy && docker-compose down && \ docker-compose up -d --force-recreate"# k8s 回滚ssh{server}"cd /opt/k8s && kubectl rollout undo deployment/asset-server"

异常处理

异常场景处理方式
构建失败报告错误,不执行后续步骤
SSH 连接失败提示检查网络和凭据
健康检查不通过报告服务日志,建议回滚
磁盘空间不足提示清理旧镜像docker image prune
端口被占用提示检查lsof -i :{port}

安全注意事项

  • 服务器密码和 SSH 密钥不写入 Skill 文件,通过环境变量或 SSH agent 传递
  • 生产环境部署需要二次确认:确定要部署到生产环境吗?(y/N)
  • 部署前自动检查是否有未提交的代码更改
## 三、实战使用示例 ### 3.1 部署到测试环境

/devops-deploy 部署到测试环境

Claude 自动执行完整的构建 → 部署 → 验证流程。 ### 3.2 只构建不部署

帮我构建前端和后端,但不部署

Skill 识别到"不部署"意图,执行 Step 1-3 后停止。 ### 3.3 回滚

刚才的部署有问题,回滚到上一个版本

Skill 执行回滚流程。 ### 3.4 查看部署历史

最近部署了哪些版本?

Skill 读取 `.claude/tmp/deploy-history.log`,列出最近的部署记录。 ## 四、Nginx 配置管理 Skill 前端部署通常由 Nginx 托管静态文件。可以单独编写一个 Nginx 配置 Skill: ```markdown --- name: nginx-config description: 生成和管理 Nginx 配置文件,包括反向代理、缓存、SSL trigger: Nginx, nginx, 反向代理, 静态托管, SSL配置 --- # Nginx 配置 Skill ## 角色定义 你是一个资深 Nginx 配置专家。 ## 常见任务 ### 1. 前端静态资源托管 ```nginx server { listen 80; server_name your-domain.com; root /usr/share/nginx/html; index index.html; # SPA 路由支持 location / { try_files $uri $uri/ /index.html; } # 静态资源缓存 location ~* \.(js|css|png|jpg|jpeg|gif|ico|woff2)$ { expires 30d; add_header Cache-Control "public, immutable"; } }

2. 反向代理后端 API

location /api/ { proxy_pass http://backend:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 30s; proxy_read_timeout 60s; }

3. SSL 证书配置

server { listen 443 ssl http2; server_name your-domain.com; ssl_certificate /etc/nginx/ssl/cert.pem; ssl_certificate_key /etc/nginx/ssl/key.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; } # HTTP 自动跳转 HTTPS server { listen 80; server_name your-domain.com; return 301 https://$server_name$request_uri; }

输出

根据用户需求生成完整的 nginx.conf 片段,
并说明每个配置项的作用。

## 五、CI/CD 集成 Skill ### 5.1 GitHub Actions 集成 ```markdown --- name: ci-cd-config description: 生成和维护 CI/CD 配置文件(GitHub Actions、GitLab CI、Jenkinsfile) trigger: CI/CD, 持续集成, 流水线, github-actions, gitlab-ci --- # CI/CD 配置 Skill ## 角色定义 你是一个 CI/CD 流水线设计专家。 ## 常见任务 ### GitHub Actions 工作流 根据用户需求生成 `.github/workflows/` 下的 YAML 文件: **构建+测试工作流**: ```yaml name: Build and Test on: push: branches: [main, develop] pull_request: branches: [main] jobs: frontend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v3 - run: pnpm install - run: pnpm test - run: pnpm build backend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: java-version: '8' distribution: 'temurin' - run: mvn clean package -DskipTests

部署工作流

name:Deployon:workflow_run:workflows:["Build and Test"]types:[completed]branches:[main]jobs:deploy:runs-on:ubuntu-latestif:${{github.event.workflow_run.conclusion == 'success'}}steps:-uses:appleboy/ssh-action@v1with:host:${{secrets.SERVER_HOST}}username:${{secrets.SERVER_USER}}key:${{secrets.SSH_PRIVATE_KEY}}script:|cd /opt/deploy docker-compose pull docker-compose up -d

输出

生成完整的 CI/CD 配置文件,并说明:

  1. 触发条件
  2. 每个 Job 的作用
  3. 需要配置的 Secret
## 六、Dockerfile 生成 Skill ```markdown --- name: dockerfile-gen description: 为前端 Vue 项目或后端 Spring Boot 项目生成最优的 Dockerfile trigger: Dockerfile, 容器化, docker build, 多阶段构建 --- # Dockerfile 生成 Skill ## 角色定义 你是一个 Docker 多阶段构建专家。 ## 前端 Dockerfile(Vue 3 + Nginx) ```dockerfile # 构建阶段 FROM node:20-alpine AS builder WORKDIR /app COPY package.json pnpm-lock.yaml ./ RUN corepack enable && pnpm install --frozen-lockfile COPY . . RUN pnpm build # 运行阶段 FROM nginx:alpine COPY --from=builder /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]

后端 Dockerfile(Spring Boot)

FROM eclipse-temurin:8-jre-alpine WORKDIR /app COPY target/*.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "app.jar"]

优化要点

  • 使用 Alpine 基础镜像减小体积
  • 多阶段构建不暴露构建工具
  • 合理使用 .dockerignore
  • 层缓存优化(先 COPY package.json,再 COPY 源代码)
## 七、这一章的核心心得 1. **部署 Skill 的核心价值**——把繁琐的构建、部署、验证流程自动化 2. **支持多环境**——通过配置区分测试/预发/生产环境 3. **回滚是必须的**——任何部署 Skill 都要包含回滚能力 4. **Nginx 配置可以独立成 Skill**——反向代理、SSL、缓存都是高频需求 5. **CI/CD 集成是进阶**——GitHub Actions / GitLab CI 的配置也可以封装成 Skill 6. **Dockerfile 生成是刚需**——前后端的最佳实践 Dockerfile 可以直接复用 ## 八、下一步 DevOps 部署 Skill 解决了"代码怎么跑起来"的问题。但代码跑起来之前,还有一个关键环节——**代码质量**。 下一篇我们将编写代码质量相关的 Skill,包括 Code Review、Lint 检查、测试覆盖率分析等,确保部署上去的代码是高质量的。 --- *系列目录:* 1. ~~初识 Skill 系统——什么是 Skill?为什么需要 Skill?~~ 2. ~~自定义 Skill 开发——从 0 到 1 编写自己的 Skill~~ 3. ~~Skill 编排与组合——多个 Skill 串联工作,打造自动化流程~~ 4. ~~实战 Skill:DevOps 部署——编写 Docker/Nginx/CI-CD 相关的部署 Skill~~ ← 本篇 5. 实战 Skill:代码质量——编写 Code Review / Lint / 测试覆盖率 Skill(待写) 6. 实战 Skill:文档生成——编写 API 文档 / 技术手册 / Changelog 生成 Skill(待写) 7. Skill 分享与复用——团队共享 Skill 库、开源 Skill 生态、版本管理(待写) 8. Skill 进阶技巧——条件触发、多语言支持、与 Agent/Workflow 的配合(待写)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/12 14:24:43

Godot 2.5D Demo插件兼容性问题:从诊断到修复的完整指南

1. 项目概述:当2.5D Demo遇上插件“水土不服”最近在社区里看到不少朋友在折腾Godot的2.5D Demo项目,特别是从官方AssetLib或者一些教程里下载的示例。兴致勃勃地打开,准备一探究竟,结果迎面就是一个脚本错误弹窗,尤其…

作者头像 李华
网站建设 2026/7/12 14:23:35

电子笔记的本质是认知基建:从信息记录到思维活化

1. 这不是在问“你用什么软件”,而是在问“你如何思考”“你的电子笔记是什么样的?”——这句话乍看像一句闲聊,实则是一把精准的解剖刀。它不关心你装了 Obsidian 还是 Notion,不追问你有没有买 iPad 配 Apple Pencil&#xff0c…

作者头像 李华
网站建设 2026/7/12 14:23:21

解锁Windows新玩法:APK Installer带你无缝安装Android应用

解锁Windows新玩法:APK Installer带你无缝安装Android应用 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为Windows上无法直接运行Android应用而烦恼吗…

作者头像 李华
网站建设 2026/7/12 14:23:10

魔兽世界终极宏编译器:GSE高级宏编辑完全指南

魔兽世界终极宏编译器:GSE高级宏编辑完全指南 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. 项目地址: https://gitcode.com/gh_mirrors/gs/GSE-Advanced-Macro-Compiler …

作者头像 李华
网站建设 2026/7/12 14:21:12

终极实时屏幕翻译工具Translumo:如何打破语言障碍的完整指南

终极实时屏幕翻译工具Translumo:如何打破语言障碍的完整指南 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 还…

作者头像 李华