1、ruoyi-pro后端打包jar并上传到master节点主机
上传到master节点【192.168.91.166/home/biz】目录下
注:master:166,home/biz为后端jar打包镜像使用
1.1、mvn打包jar
mvn clean install -U -DskipTests

生成.jar包

本地可以先选行一下
java -jar yudao-server202607292116.jar
1.2 生成jar包自动上传到上传到master节点【192.168.91.166/home/biz】目录下

1.3 pom.xml 打包及上传配置
<!-- 新增时间戳格式 -->
<maven.build.timestamp.format>yyyyMMddHHmm</maven.build.timestamp.format>
<build>
<!-- 打包带日期jar名 -->
<finalName>${project.artifactId}${maven.build.timestamp}</finalName>
<!-- 3. 【关键】添加 SSH 扩展支持,否则无法使用 scp 协议 -->
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>3.5.3</version>
</extension>
</extensions>
<plugins>
<!-- 打包 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
</goals>
</execution>
</executions>
</plugin>
<!-- 4. 自动上传插件 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<!-- 对应 settings.xml 中的 ID -->
<serverId>remote-server</serverId>
<!-- 待上传的文件路径 (target目录下) -->
<fromFile>${project.build.directory}/${project.artifactId}${maven.build.timestamp}.jar</fromFile>
<!-- 远程服务器地址: scp://用户名@IP/目标目录 master:166,home/biz为后端jar打包镜像使用-->
<url>scp://root@192.168.91.166/home/biz</url>
</configuration>
<!-- 绑定生命周期:在执行完 package 后,自动执行 upload-single -->
<executions>
<execution>
<id>upload-deploy</id>
<phase>package</phase>
<goals>
<goal>upload-single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
1.4 settings.xml 中的 ID
<serverId>remote-server</serverId>
<servers>
<server>
<id>remote-server</id> <!-- 必须与 pom.xml 中的 serverId 一致 -->
<username>root</username>
<password>root</password>
<!-- 关键配置:跳过主机指纹询问 -->
<configuration>
<StrictHostKeyChecking>no</StrictHostKeyChecking>
<PreferredAuthentications>password</PreferredAuthentications>
</configuration>
</server>
</servers>


2、yudao-server202607292116.jar 构成镜像并推送到私库192.168.91.164:harbor【工具脚本】
######master节点【192.168.91.166/home/biz】执行构成镜像并上传到私库192.168.91.164:harbor

2.1 本地构成镜像docker build -t yudao-server:202607292012 .
docker build -t yudao-server:202607292012 .
执行构成镜像脚本1biz-build.sh
./1biz-build.sh 202607300739
#####参数为jar的202607300739的版本号

2.2 镜像推送到私库192.168.91.164:harbor
#先打上 Harbor 仓库标签
docker tag yudao-server:202607292116 192.168.91.164/rouyi-biz/yudao-server:202607292116
# 推送harbor
docker push 192.168.91.164/rouyi-biz/yudao-server:202607292116
./2biz-pull.sh 202607300739
#####参数为jar的202607300739的版本号

3、kubeSphere 的yaml文件的image:版本更新



旧版本:202607292116
新版本:202607300739
4、1biz-build.sh及2biz-pull.sh脚本及readme内容
赋予执行权限
chmod +x 1pull-build.sh
运行 ./1pull-build.sh 202607292116
赋予执行权限
chmod +x 2biz-build.sh
运行 ./2biz-build.sh 202607292116
1biz-build.sh脚本
#!/bin/bash
# 参数校验
if [ $# -ne 1 ]; then
echo "使用方式:./1pull-build.sh 版本号"
echo "示例:./1pull-build.sh 202607292116"
exit 1
fi
VERSION="$1"
HARBOR_ADDR="192.168.91.164"
PROJECT="rouyi-biz"
IMAGE_NAME="yudao-server"
LOCAL_IMG="${IMAGE_NAME}:${VERSION}"
REMOTE_IMG="${HARBOR_ADDR}/${PROJECT}/${IMAGE_NAME}:${VERSION}"
echo "===== 开始执行tag与推送,版本:${VERSION} ====="
docker tag "${LOCAL_IMG}" "${REMOTE_IMG}"
docker push "${REMOTE_IMG}"
echo "===== ${REMOTE_IMG} 推送完成 ====="
2biz-pull.sh脚本
#!/bin/bash
# 参数校验
if [ $# -ne 1 ]; then
echo "用法:./2biz-pull.sh 版本号"
echo "示例:./2biz-pull.sh 202607300739"
exit 1
fi
VERSION="$1"
HARBOR_ADDR="192.168.91.164"
PROJECT="rouyi-biz"
IMAGE_NAME="yudao-server"
LOCAL_IMAGE="${IMAGE_NAME}:${VERSION}"
REMOTE_IMAGE="${HARBOR_ADDR}/${PROJECT}/${IMAGE_NAME}:${VERSION}"
# 正确检测本地镜像是否存在
if ! docker inspect "${LOCAL_IMAGE}" >/dev/null 2>&1; then
echo "错误:本地镜像 ${LOCAL_IMAGE} 不存在,请先构建!"
exit 1
fi
echo "===== 开始打远程标签 ====="
docker tag "${LOCAL_IMAGE}" "${REMOTE_IMAGE}"
echo "===== 开始推送镜像到Harbor ====="
docker push "${REMOTE_IMAGE}"
echo "===== 推送完成:${REMOTE_IMAGE} ====="

浙公网安备 33010602011771号