Dict.CN 在线词典, 英语学习, 在线翻译 ------------- MyGitee My腾云code My51cto

Happy_EveryDay

可以平凡 不可以平庸 无爱则无忧,无欲则无求,无怒而无敌,无怨才是佛。所有烦恼,都是放不下的执著 开源技群 328035181 MyGitee

博客园 首页 新随笔 管理

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

image

 

生成.jar包

image

 

 

本地可以先选行一下

java -jar  yudao-server202607292116.jar

 

1.2 生成jar包自动上传到上传到master节点【192.168.91.166/home/biz】目录下

 

image

 

 

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>

 

image

 

 

image

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2、yudao-server202607292116.jar 构成镜像并推送到私库192.168.91.164:harbor【工具脚本】

 ######master节点【192.168.91.166/home/biz】执行构成镜像并上传到私库192.168.91.164:harbor

 

image

 

 

 

 

2.1  本地构成镜像docker build -t yudao-server:202607292012 .

docker build -t yudao-server:202607292012 .

 

执行构成镜像脚本1biz-build.sh

 ./1biz-build.sh 202607300739

#####参数为jar的202607300739的版本号

image

 

 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的版本号

 

image

 

 

 

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

 

image

 

 

 

 

image

 

 

W0~%{UNT4GM(G6CTLU@Z91Y

 

旧版本: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} ====="

 

 

 

 

 

image

 

posted on 2026-07-19 18:04  2026cn  阅读(7)  评论(0)    收藏  举报