logo
3
0
WeChat Login
去掉前端打包强类型校验

Vibe Coding DevOps

完整的 Spring Boot + Vue 3 全栈项目开发、构建和部署解决方案。

概述

本方案提供从项目初始化、代码开发到自动化部署的完整工作流程,集成 CNB (Cloud Native Build)Kubernetes,支持快速迭代和自动化运维。

核心特性

  • 🚀 快速初始化:一键生成项目骨架
  • 🛠️ 开发标准化:统一技术栈和最佳实践
  • 🔄 CI/CD 自动化:Git 推送自动触发构建部署
  • 📦 多架构支持:amd64/arm64 镜像构建
  • 🎯 密钥驱动:敏感配置统一管理

工作流程

┌─────────────────┐ │ 1. 项目初始化 │ /init (cnb-spring-vue-dev) └────────┬────────┘ ↓ ┌─────────────────┐ │ 2. 代码开发 │ 本地开发 + Docker Compose └────────┬────────┘ ↓ ┌─────────────────┐ │ 3. Git 提交 │ git push └────────┬────────┘ ↓ ┌─────────────────┐ │ 4. CNB 构建 │ /deploy --build-only (cnb-k8s-cicd) └────────┬────────┘ ↓ ┌─────────────────┐ │ 5. K8s 部署 │ 自动部署到 Kubernetes └────────┬────────┘ ↓ ┌─────────────────┐ │ 6. 验证部署 │ MCP 工具查询状态 └─────────────────┘

MCP 工具集成

本方案集成了两个强大的 MCP (Model Context Protocol) 服务器,提供智能化的开发和部署能力。

1. CNB MCP Server

功能:

  • 访问 CNB 代码仓库和密钥仓库
  • 查询构建状态和日志
  • 触发和管理构建任务
  • 获取项目配置信息

优势:

  • 无需手动访问网页,直接通过 MCP 工具操作
  • 结构化数据返回,便于自动化处理
  • 安全的密钥管理

2. Kubernetes MCP Server

功能:

  • 查询集群资源(Pods, Deployments, Services 等)
  • 获取 Pod 日志
  • 描述资源详情
  • 部署和管理应用

优势:

  • 直接访问集群,无需 kubectl 命令
  • 实时监控部署状态
  • 快速定位问题

集群信息:

MCP 服务器安装配置

在开始使用之前,需要先配置这两个 MCP 服务器到 Claude Code。

1. 安装 CNB MCP Server

claude mcp add --transport http cnb-mcp-server https://mcp.cnb.cool/mcp \ --header "Authorization: Bearer <YOUR_TOKEN>"

说明:

  • <YOUR_TOKEN> 替换为你在 CNB 平台的个人访问令牌
  • 通过 HTTP 协议连接到 CNB MCP 服务
  • 需要确保能访问 mcp.cnb.cool

2. 安装 Kubernetes MCP Server

首先拉取 Docker 镜像:

docker pull flux159/mcp-server-kubernetes:latest

然后添加 MCP 服务器配置:

claude mcp add home-kubernetes-mcp-server -- docker run -i --rm \ --network host \ -v /home/code/.kube/config:/config:ro \ -e KUBECONFIG=/config \ flux159/mcp-server-kubernetes

说明:

  • 使用 Docker 容器运行 MCP 服务器
  • 通过 --network host 共享主机网络,直接访问集群
  • 挂载 kubeconfig 文件(只读模式)用于集群认证
  • 需要确保 kubeconfig 文件路径正确

验证安装

安装完成后,可以通过以下方式验证:

# 查看 MCP 服务器列表 claude mcp list # 测试 Kubernetes MCP 服务器 # 在 Claude Code 中询问:"查看集群状态"

技能体系

本方案提供两个专门的 Claude Code Skills,覆盖开发和部署全流程。

1. cnb-spring-vue-dev (开发技能)

职责: 项目初始化和代码开发

使用场景:

  • 创建新项目骨架(Spring Boot + Vue 3)
  • 配置数据库和中间件
  • 添加功能模块(用户、订单等)
  • 本地开发调试
  • 代码规范和最佳实践

命令:

/init # 初始化完整项目 /init --backend-only # 仅初始化后端 /init --frontend-only # 仅初始化前端 /add-feature <name> # 添加功能模块 /config-db # 配置数据库 /dev # 启动本地开发环境

技术栈:

  • 后端: Spring Boot 3.2 + Java 17 + MyBatis
  • 前端: Vue 3.4 + Vite 5 + TypeScript + Element Plus
  • 数据库: MySQL 8.0, Redis 7.0, Neo4j 5.16
  • 存储: MinIO 8.5

配置示例:

.claude/skills/cnb-spring-vue-dev/ ├── SKILL.md # 主技能文件 ├── reference/ # 配置参考 │ ├── pom.xml.example # Maven 配置 │ ├── package.json.example # npm 配置 │ ├── application.yml.example # 应用配置 │ ├── docker-compose.yml.example # 本地开发 │ ├── backend-Dockerfile.example # 后端 Dockerfile │ ├── frontend-Dockerfile.example # 前端 Dockerfile │ ├── vite.config.ts.example # Vite 配置 │ └── schema.sql.example # 数据库初始化脚本 └── scripts/ # 辅助脚本

2. cnb-k8s-cicd (部署技能)

职责: CNB 构建和 Kubernetes 部署

使用场景:

  • 创建 CNB 构建配置
  • 配置密钥仓库
  • 构建和推送 Docker 镜像
  • 部署到 Kubernetes 集群
  • 验证部署状态

命令:

/deploy # 完整构建和部署流程 /deploy --build-only # 仅 CNB 构建 /deploy --deploy-only # 仅部署已有镜像 /deploy --show-config # 显示项目配置 /deploy --new-project <name> # 为新项目创建配置

核心流程:

  1. Git 推送触发 CNB 构建
  2. 导入密钥配置
  3. 多架构镜像构建(amd64/arm64)
  4. 推送镜像到仓库
  5. 通过 Kuboard API 更新部署
  6. 自动重启 Pod

配置示例:

.claude/skills/cnb-k8s-cicd/ ├── SKILL.md # 主技能文件 ├── reference/ # 配置参考 │ ├── cnb.yml.example # CNB 构建配置 │ ├── k8s-deployment.yaml # K8s 部署配置 │ ├── dev-grow-backend-deployment.yaml # 后端部署示例 │ ├── dev-grow-frontend-deployment.yaml # 前端部署示例 │ ├── dev-grow-services.yaml # Service 配置示例 │ └── secret-config-example.yml # 密钥配置 └── scripts/ # 部署脚本 └── cnb-k8s-deploy.sh # 自动部署脚本

公共中间件

开发环境可用的公共中间件(由 cnb-spring-vue-dev skill 管理):

中间件版本地址用途
MySQL8.0+192.168.5.66:3306关系型数据库
Redis7.0+192.168.5.66:6379缓存数据库
Neo4j5.16.0192.168.5.66:7687图数据库
MinIO8.5.7192.168.5.66:9000对象存储

注意:

  • 中间件地址为内网地址,无需打码
  • 密码等敏感信息通过环境变量配置
  • 由基础设施团队统一维护

目录结构

vibe-coding-devops/ ├── .claude/ │ └── skills/ │ ├── cnb-spring-vue-dev/ # 开发技能 │ │ ├── SKILL.md # 主技能文件 │ │ ├── reference/ # 配置参考文件 │ │ │ ├── pom.xml.example │ │ │ ├── package.json.example │ │ │ ├── application.yml.example │ │ │ ├── docker-compose.yml.example │ │ │ ├── backend-Dockerfile.example │ │ │ ├── frontend-Dockerfile.example │ │ │ ├── vite.config.ts.example │ │ │ └── schema.sql.example │ │ └── scripts/ # 辅助脚本 │ └── cnb-k8s-cicd/ # 部署技能 │ ├── SKILL.md # 主技能文件 │ ├── reference/ # 配置参考文件 │ │ ├── cnb.yml.example │ │ ├── k8s-deployment.yaml │ │ ├── dev-grow-backend-deployment.yaml │ │ ├── dev-grow-frontend-deployment.yaml │ │ ├── dev-grow-services.yaml │ │ └── secret-config-example.yml │ └── scripts/ # 部署脚本 │ └── cnb-k8s-deploy.sh └── README.md # 本文档

快速开始

1. 创建新项目

使用开发技能初始化项目:

/init my-project

这将创建:

  • my-project-backend - Spring Boot 后端项目
  • my-project-frontend - Vue 3 前端项目
  • docker-compose.yml - 本地开发环境
  • .cnb.yml - CNB 构建配置

2. 配置密钥

在 CNB 密钥仓库创建配置文件:

# code-channel/secret/kuboard-cicd-my-project.yml KuboardHost: xxx.xxx.xxx.xxx:8000 KubernetesClusterName: home-k3s KubernetesNamespace: my-project KubernetesPodName1: my-project-backend KubernetesPodName2: my-project-frontend KuboardUsername: admin KuboardAccessKey: <your-access-key>

3. 本地开发

启动本地开发环境:

docker-compose up -d

访问:

4. 部署到生产

提交代码并推送:

git add . git commit -m "feat: initial commit" git push origin master

CNB 自动触发构建,完成部署后使用 MCP 工具验证:

# 查询 Pod 状态 # 使用 Kubernetes MCP 工具 # 查看日志 # 使用 Kubernetes MCP 工具

技能选择指南

使用 cnb-spring-vue-dev (开发技能) 当你需要:

✅ 创建新项目 ✅ 添加功能模块(用户、订单等) ✅ 配置数据库连接 ✅ 编写业务代码 ✅ 本地调试测试 ✅ 查看中间件配置

使用 cnb-k8s-cicd (部署技能) 当你需要:

✅ 创建 CNB 构建配置 ✅ 配置 Kubernetes 部署 ✅ 查看构建状态 ✅ 部署应用到集群 ✅ 验证部署状态 ✅ 查看集群资源


最佳实践

开发阶段

  1. 使用 MCP 工具:优先使用 MCP 工具访问集群和 CNB,而非手动命令
  2. 本地开发:使用 Docker Compose 进行本地开发和测试
  3. 代码规范:遵循 Java 和 Vue 最佳实践
  4. 环境变量:敏感信息使用环境变量配置

部署阶段

  1. 密钥管理:所有敏感配置存储在密钥仓库
  2. 多架构构建:使用 docker buildx 构建 amd64/arm64 镜像
  3. 健康检查:配置健康检查确保服务可用
  4. 日志监控:通过 MCP 工具实时查看日志

安全建议

  1. 公网地址打码:文档中的公网地址已打码处理
  2. 内网地址保留:内网地址使用真实值便于配置
  3. 密钥轮换:定期更换 Kuboard AccessKey
  4. 权限控制:限制密钥仓库访问权限

参考文档

CNB 相关

Kubernetes 相关

技术栈文档


示例项目

dev-grow - 程序员成长计量与可视化系统

完整的项目示例,展示了:

  • Spring Boot + Vue 3 项目结构
  • CNB 构建配置
  • Kubernetes 部署配置
  • 中间件集成(MySQL、Redis、Neo4j、MinIO)

可作为新项目的参考模板。


常见问题

Q: 如何添加新的中间件?

A: 使用 /cnb-spring-vue-dev skill,参考现有中间件配置进行集成。

Q: 部署失败如何排查?

A: 使用 /deploy skill,通过 Kubernetes MCP 工具查看 Pod 状态和日志。

Q: 如何回滚到上一个版本?

A: 通过 Kuboard 界面或 Kubernetes MCP 工具进行回滚操作。

Q: 本地开发和生产环境配置不同怎么办?

A: 使用 Spring Profile(dev/prod)和环境变量区分不同环境。


贡献

欢迎提交 Issue 和 Pull Request 来改进这个 DevOps 解决方案!


许可

MIT License

About

完整的 Spring Boot + Vue 3 全栈项目开发、构建和部署解决方案。集成 CNB 和 Kubernetes,支持快速迭代和自动化运维。

Language
Shell100%