📝 前言

最近在做一个CRM项目,基于开源的若依框架(RuoYi-Vue)进行二次开发。项目开发完成后,需要部署到腾讯云服务器上。正好腾讯云的CodeBuddy(现在叫腾讯云代码助手)支持自动化部署,体验下来真的很方便,特此记录一下完整流程。

关键词: 腾讯云 | CodeBuddy | 若依框架 | Docker部署 | 轻量应用服务器 | 自动化部署

一、准备工作

1.1 项目代码托管

首先,确保你的项目代码已经托管在Git仓库中。我使用的是Gitee(码云),项目地址:

git@gitee.com:shuqingyu/crm.git

💡 提示: CodeBuddy支持GitHub、Gitee、GitLab等主流Git仓库,选择自己习惯的即可。

1.2 腾讯云资源准备

我的服务器配置:

  • 地域: 上海

  • 配置: 2核2GB内存 + 5M带宽

  • 系统: Ubuntu

二、CodeBuddy 首次使用配置

2.1 安装CodeBuddy插件

腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴  安装IDE

2.2 登录授权

  1. 点击IDE侧边栏的CodeBuddy图标

  2. 选择登录腾讯云账号

  3. 在弹出的网页中完成授权登录

2.3 导入项目

在CodeBuddy对话框中说:

我直接git导入gitee,地址:git@gitee.com:shuqingyu/crm.git

CodeBuddy会自动处理:

  • 克隆代码到本地

  • 识别项目类型(Java + Vue)

  • 分析项目结构

三、选择部署目标

CodeBuddy提供了多种部署方式:

部署产品 适用场景
Tencent Lighthouse 轻量应用服务器,适合中小型项目
Cloud Studio 云端开发环境
EdgeOne Pages 静态网站托管
CloudBase 云开发,适合小程序/Web

💡 我的选择: Tencent Lighthouse(轻量应用服务器)

在对话框中选择:

text

请帮我在lighthouse上部署这个项目

CodeBuddy会:

  1. 查询你的轻量服务器资源列表

  2. 要求选择目标地域

  3. 确定目标服务器实例

四、自动部署流程

CodeBuddy的自动化部署包含以下步骤:

4.1 环境检查

自动检查服务器环境:

  • ✅ Docker 及 Docker Compose

  • ✅ JDK(用于Java后端)

  • ✅ Node.js(用于Vue前端)

如果缺少依赖,CodeBuddy会自动安装。

4.2 生成部署配置

CodeBuddy会根据项目结构自动生成:

📄 docker-compose.yml
version: '3.8'

services:
  mysql:
    image: mysql:8.0
    container_name: ruoyi-mysql
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: ry-vue
    ports:
      - "3306:3306"
    volumes:
      - mysql-data:/var/lib/mysql
      - ./sql/ry_20260330.sql:/docker-entrypoint-initdb.d/01-init.sql
      - ./sql/quartz.sql:/docker-entrypoint-initdb.d/02-quartz.sql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 5s
      retries: 5
    restart: always

  redis:
    image: redis:7-alpine
    container_name: ruoyi-redis
    ports:
      - "6379:6379"
    restart: always

  app:
    build: .
    container_name: ruoyi-app
    ports:
      - "80:80"
    depends_on:
      mysql:
        condition: service_healthy
      redis:
        condition: service_started
    environment:
      - SPRING_DATASOURCE_DRUID_MASTER_URL=jdbc:mysql://mysql:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
      - SPRING_DATASOURCE_DRUID_MASTER_USERNAME=root
      - SPRING_DATASOURCE_DRUID_MASTER_PASSWORD=123456
      - SPRING_DATA_REDIS_HOST=redis
      - SPRING_DATA_REDIS_PORT=6379
    restart: always

volumes:
  mysql-data:
📄 Dockerfile(多阶段构建)
# ============ Stage 1: 构建后端 ============
FROM maven:3.9-eclipse-temurin-17 AS backend-builder
WORKDIR /build
COPY pom.xml .
COPY ruoyi-common/pom.xml ruoyi-common/
# ... 复制各模块pom
RUN mvn dependency:go-offline -B || true
COPY . .
RUN mvn clean package -DskipTests -pl ruoyi-admin -am -B

# ============ Stage 2: 构建前端 ============
FROM node:22-alpine AS frontend-builder
WORKDIR /build
COPY ruoyi-ui/package.json ./
RUN npm install
COPY ruoyi-ui/ ./
RUN npm run build:prod

# ============ Stage 3: 运行环境 ============
FROM eclipse-temurin:17-jre-alpine
RUN apk add --no-cache nginx
COPY --from=backend-builder /build/ruoyi-admin/target/ruoyi-admin.jar /app/
COPY --from=frontend-builder /build/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/http.d/default.conf
EXPOSE 80
CMD ["sh", "-c", "nginx && java -jar /app/ruoyi-admin.jar"]
📄 nginx.conf
server {
    listen 80;
    server_name localhost;

    location / {
        root /usr/share/nginx/html;
        index index.html;
        try_files $uri $uri/ /index.html;
    }

    location /prod-api/ {
        proxy_pass http://127.0.0.1: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_set_header X-Forwarded-Proto $scheme;
        proxy_connect_timeout 300s;
        proxy_read_timeout 300s;
    }
}

4.3 上传文件到服务器

CodeBuddy会自动:

  • 打包项目文件

  • 通过SSH上传到服务器

  • 解压到指定目录(如:/root/RuoYi-Vue-springboot3_xxx/

4.4 配置防火墙规则

自动开放必要端口:

  • 80 - HTTP服务

  • 3306 - MySQL(可选,建议仅内网访问)

  • 6379 - Redis(可选)

4.5 解决镜像下载问题

部署过程中遇到问题:

⚠️ 镜像下载超时(国内服务器访问 Docker Hub 较慢)

解决方案: 配置国内镜像加速器

# 编辑Docker配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com/",
    "https://docker.m.daocloud.io/",
    "https://dockerhub.timeweb.cloud/"
  ]
}
EOF

# 重启Docker
sudo systemctl daemon-reload
sudo systemctl restart docker

五、部署结果验证

5.1 容器状态

bash

docker compose ps

显示结果:

容器名称 状态 端口
ruoyi-app Up 80→8080
ruoyi-mysql Up (healthy) 3306
ruoyi-redis Up 6379

5.2 访问测试

  • 前端页面: http://服务器IP:80

  • 后端API: http://服务器IP:80/prod-api/

  • 默认账号: admin / admin123

5.3 部署架构图

┌─────────────────────────────────────────────────────┐
│                    腾讯云轻量服务器                    │
│  ┌─────────────────────────────────────────────┐   │
│  │              Docker Compose                  │   │
│  │  ┌─────────┐  ┌─────────┐  ┌─────────────┐  │   │
│  │  │  Nginx  │  │  Java   │  │   MySQL     │  │   │
│  │  │  :80    │→ │  :8080  │  │   :3306     │  │   │
│  │  └─────────┘  └─────────┘  └─────────────┘  │   │
│  │                     ↓                         │   │
│  │              ┌─────────────┐                 │   │
│  │              │   Redis     │                 │   │
│  │              │   :6379     │                 │   │
│  │              └─────────────┘                 │   │
│  └─────────────────────────────────────────────┘   │
│                                                     │
│  ■ 前端: Vue.js (dist静态文件)                      │
│  ■ 后端: Spring Boot + 多阶段构建                   │
│  ■ 数据库: MySQL 8.0 + 自动初始化SQL                │
└─────────────────────────────────────────────────────┘

六、部署成功信息

最终CodeBuddy返回的部署结果:

项目 说明
访问地址 http://xxx.xx.xxx.xxx
服务器 腾讯云轻量服务器(上海)
前端 Nginx 80端口 → Vue静态文件
后端 Spring Boot 8080端口
数据库 MySQL 8.0(已初始化ry_20260330数据)
缓存 Redis 7

七、常用运维命令

7.1 Docker Compose 管理

# 查看所有容器状态
docker compose ps

# 查看指定服务日志
docker compose logs -f app
docker compose logs -f mysql
docker compose logs -f redis

# 重启指定服务
docker compose restart app

# 停止所有服务
docker compose down

# 启动所有服务
docker compose up -d

# 停止并删除数据卷(谨慎使用)
docker compose down -v

7.2 更新部署流程

当你推送新代码到Git仓库后:

# 1. 进入项目目录
cd /root/RuoYi-Vue-springboot3_xxx/

# 2. 拉取最新代码
git pull

# 3. 重新构建并部署
docker compose up -d --build

# 4. 查看新版本日志
docker compose logs -f app

7.3 数据库操作

# 进入MySQL容器
docker exec -it ruoyi-mysql mysql -uroot -p123456

# 备份数据库
docker exec ruoyi-mysql mysqldump -uroot -p123456 ry-vue > backup.sql

# 导入SQL文件
docker exec -i ruoyi-mysql mysql -uroot -p123456 ry-vue < new_data.sql

八、踩坑与解决

8.1 镜像拉取超时

问题: 国内服务器拉取Docker Hub镜像超时

解决: 配置腾讯云镜像加速器

8.2 数据库连接失败

问题: app容器启动时找不到数据库

解决: 使用depends_on + healthcheck确保MySQL先完全启动

8.3 前端API请求404

问题: 前端请求/prod-api/接口返回404

解决: 检查nginx.conf中的proxy_pass配置是否正确


九、总结

9.1 CodeBuddy自动化部署优势

优势 说明
✅ 零配置 自动识别项目类型,生成Docker配置
✅ 全流程自动化 从代码拉取到部署完成一键搞定
✅ 多环境支持 Lighthouse、CloudBase、EdgeOne等
✅ 可视化操作 对话框交互,降低部署门槛

9.2 整体体验

从开始到部署成功,整个过程不到20分钟:

  • 无需手动编写Dockerfile

  • 无需反复ssh登录服务器

  • 无需记忆docker命令

💡 建议: 对于中小型项目的快速部署,CodeBuddy绝对值得一试!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐