Skip to content

Jenkins部署流程

1、Jenkins地址

  • [工作台 Jenkins]
  • 账号:admin
  • 密码:232108e28b46477597e80a4fa045aa73

2、部署流程

1、接口部署流程

  1. 创建项目文件夹 先择对应分组,测试部署还是生成部署

    image-20250520155908370

    image-20250520160448917

  2. 创建jar部署项目

    image-20250520160914797

  3. 测试服部署脚本

    shell
    #!/bin/bash
    
    # 设置环境变量防止进程被杀死
    export BUILD_ID=DONTKILLME
    _DEPLOYER='root'
    _LOG_DIRECTORY="/home/logs"
    _PROFILES='test'
    
    # 重启应用函数
    function restart() {
      SERVICE_CONFIG=$1
      SERVICE_NAME=$(echo $SERVICE_CONFIG | cut -f1 -d';')
      SERVICE_PORT=$(echo $SERVICE_CONFIG | cut -f2 -d';')
      MEMORY_MAX=$(echo $SERVICE_CONFIG | cut -f3 -d';')
    
      # 创建工作目录并拷贝jar包
      WORKSPACE_PATH="/home/workspace/${SERVICE_NAME}-${SERVICE_PORT}"
      mkdir -p ${WORKSPACE_PATH}
      cp target/$SERVICE_NAME.jar ${WORKSPACE_PATH}/app.jar
      echo "CP 完成,状态码: $?"
    
      # 调试信息
      echo "SERVICE_CONFIG: $SERVICE_CONFIG"
      echo "SERVICE_NAME: $SERVICE_NAME"
      echo "SERVICE_PORT: $SERVICE_PORT"
    
      # 本地执行启动脚本(移除了SSH)
      /home/start_bash -s -- \
        -t "${WORKSPACE_PATH}/app.jar" \
        -a "-Xmx${MEMORY_MAX} -Xms${MEMORY_MAX} -Dserver.port=${SERVICE_PORT} -Dspring.profiles.active=${_PROFILES}" \
        -l \
        -f "${_LOG_DIRECTORY}/${SERVICE_NAME}-${SERVICE_PORT}.log" \
        -p ${SERVICE_PORT}
    }
    
    # 项目编译
    MAVEN_BIN="/usr/local/maven3.9.9/maven-3.9.9/bin/mvn"
    ${MAVEN_BIN} clean package -am -U -e -Dmaven.test.skip=true
    
    if [ $? -ne 0 ]; then
      echo "编译失败,退出部署流程"
      exit 1
    fi
    echo "构建成功,开始部署..."
    
    # 服务配置(示例配置)
    SERVICE_CONFIG='demo;13900;128m'
    restart "${SERVICE_CONFIG}"
    
    # 等待应用启动
    sleep 10
    
    echo "=========== 部署完成 ==========="

    修改内容SERVICE_CONFIG='demo;13900;128m'

    • demo → 实际项目包名
    • 13900 → 实际项目运行端口
    • 128m → 项目运行堆内存

2、管理端页面部署

  1. 创建项目(流程同上)

  2. 部署配置

    image-20250520162757983

  3. 部署脚本

    shell
    #!/bin/bash
    
    # 构建项目
    npm install --registry=https://registry.npmmirror.com
    npm run build:prod
    if [ $? -ne 0 ]; then
        echo "构建失败"
        exit 1
    fi
    echo "构建成功"
    
    # 发布逻辑
    PROJECT_NAME='children'
    if [ -d "/home/web/${PROJECT_NAME}/manager" ]; then
        tar -czf /tmp/${PROJECT_NAME}_manager_$(date +%Y%m%d%H%I%S).tar.gz -C /home/web/${PROJECT_NAME} manager
        find /home/web/${PROJECT_NAME}/manager -type f -delete
        find /home/web/${PROJECT_NAME}/manager -mindepth 1 -type d -empty -delete
        rmdir /home/web/${PROJECT_NAME}/manager
    fi
    mkdir -p /home/web/${PROJECT_NAME}
    mv dist /home/web/${PROJECT_NAME}/manager

    修改内容PROJECT_NAME='demo'

    • demo → 实际项目名

本内容仅限内部使用,技术细节以实际代码为准