惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Recorded Future
Recorded Future
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
S
SegmentFault 最新的问题
博客园 - 司徒正美
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
云风的 BLOG
云风的 BLOG
雷峰网
雷峰网
博客园 - 叶小钗
The GitHub Blog
The GitHub Blog
MyScale Blog
MyScale Blog
腾讯CDC
博客园 - 聂微东
D
DataBreaches.Net
博客园 - Franky
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 【当耐特】
量子位
宝玉的分享
宝玉的分享
D
Docker
T
Tailwind CSS Blog
IT之家
IT之家
Engineering at Meta
Engineering at Meta
P
Proofpoint News Feed
C
CERT Recently Published Vulnerability Notes
Scott Helme
Scott Helme
Project Zero
Project Zero
Microsoft Azure Blog
Microsoft Azure Blog
AWS News Blog
AWS News Blog
Google DeepMind News
Google DeepMind News
H
Heimdal Security Blog
W
WeLiveSecurity
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
有赞技术团队
有赞技术团队
Simon Willison's Weblog
Simon Willison's Weblog
NISL@THU
NISL@THU
C
Cybersecurity and Infrastructure Security Agency CISA
Google DeepMind News
Google DeepMind News
T
Threatpost
TaoSecurity Blog
TaoSecurity Blog
N
News and Events Feed by Topic
aimingoo的专栏
aimingoo的专栏
Recent Commits to openclaw:main
Recent Commits to openclaw:main
www.infosecurity-magazine.com
www.infosecurity-magazine.com
SecWiki News
SecWiki News
S
Securelist

博客园 - cn2025

工具脚本【kubeSphere发布ruoyi-pro前端】20260720 HbuilderX 内置终端转为 gitBash 20260720 kubeSphere发布ruoyi-web前端 20260711 kubeSphere发布ruoyi-pro后端 k8s集群-kubeShpere 20260710 安装Helm 20260710 k8s-portainer docker 镜像查询 k8集群一键重置 docker run OceanBase spring ai alibaba doc AI2.0 【多模态】 20260615 世界只有一个墨脱 AI2.0 【Mcp-client】 20260611 AI2.0 【Mcp-server】 20260611 GoLand 配Go SDK AI2.0 【redis向量-Rag】 问答顾问器QuestionAnswerAdvisor 20260608 AI2.0 【redis向量】redis-stack 20260608 AI2.0 【Embedding】嵌入模型 20260606 AI 工具 AI2.0 Tool调用20260604 AI2.0 对话chatMemory20260601 AI2.0 模型输出结构化【POJO、Record、List、Map 】20260530 AI2.0 Prompt【模板、流式 API、系统提示词】 20260529 AI2.0 自定义Advisor 20260528 AI2.0 ollama 20260528 AI2.0 dashscope-openai 20260527 ps 配Claude 20260527 spring-ai-alibaba-agent 260526 票务 Tool+Spring Security【动态tooLs:toolCallbacks】 20260525 spring-ai-alibaba-agent 260525 spring-ai-alibaba-agent 260523 票务 Tool接口 / 方法 / 参数【无意义、可读、业务化、参数数量过多】 20260521 票务 Tool参数幻觉 20260521 spring-ai-alibaba-agent 260521 ToolTemperature 温度过低,AI推算缺失自由度20260520 spring-ai-alibaba-agent 260520 票务Tool 20260519 票务助手 -多模型20260518 结构化输出 -原理【structuredconverter】20260518 spring-ai-alibaba-agent 260518 Dify 添加Ollma模型qwen2:0.5b 应用 20260516 docker 部【dify-api】/【dify-web】 20260514 Chatclient 结构化输出20260514 spring-ai-alibaba-agent 260514 Chatmemory 多层(近、中、长期)20260513 ChatmemoryRedis 历史对话存【REDIS】20260512 ChatmemoryJdbc 历史对话存【JDBC】20260511 spring-ai-alibaba-agent 260511 ChatmemoryConversationId 多用户对话记忆 20260508 spring-ai-alibaba-agent 260508 ChatmemoryMax 历史对话长度20260507 2026SE Chatmemory 对话记忆20260506 spring-ai-alibaba-agent 260506 ChatClientPrompt 自定义拦截器【ReReadingAdvisor】重读提示词 20260430 docker-apache/kafka:4.1.2部暑 集群20260423 ChatClientPrompt Template.st20260428 ChatClientPrompt Template20260427 sb-KafkaListener 20260425 docker-apache/kafka:4.1.2部暑 20260425 dashscope-sb ChatClientPrompt20260425 SBAI-MultiPlatformAndModel 20260424 PlatformModel SB-ChatClient-DeepSeekDashScopeOllamaModel 20260424 dashscope-sb ChatClient20260420 ollama-sb 多态 图转文 20260418 【gemma3:4b 解析慢】 dashscope-sb 多模态(图片、语音识别) 文生视频 ollama-sb 20260414 dashscope-sb 阿里百炼-文生图20260413 dashscope-sb20260413 dashscope-sb20260411 docker-zabbix 20260410 deepseek-sb20260408 MQTT20260403 spring-ai-alibaba-agent 260403 MqttTest 20260401 spring-ai-alibaba-agent 260401 docker安装 EMQX spring-ai-alibaba-agent 260331 MQTT 20260331 spring-ai-alibaba-agent 三大 Java 生态 AI Agent 框架 CentOS7-静态 IP centos-stream10 安装 百炼-工作流-sb sb-flink1.13.1-jdk8-分隔字符串 20260125
kubeSphere发布ruoyi-pro后端-用到脚本
2026cn · 2026-07-19 · via 博客园 - cn2025

一、生在jar并上传.91.164主机

image

image

 版本号202607190940

<properties>
   <!-- 新增时间戳格式 -->
<maven.build.timestamp.format>yyyyMMddHHmm</maven.build.timestamp.format>
</properties>
<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/目标目录 -->
<url>scp://root@192.168.91.164/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>

image

image


二 脚本执行

image

1、生成镜像

./1biz-build.sh   202607190940

image

3、镜像导出tar

./2biz-save.sh   202607190940

image

4、tar推送到k8s节点的镜像

./3biz-pull-k8s.sh   202607190940

image

k8s-master查看镜像

image

image

image

三、kubeSphere 的yaml版本升级

image

image

   旧版:yudao-server:20260716

   新版:192.168.91.164/rouyi-biz/yudao-server:202607190940

   192.168.91.164/rouyi-biz/yudao-web:20260908

6、参考脚本

1biz-build.sh

#!/bin/bash

# 判断是否传入参数
if [ $# -ne 1 ]; then
echo "使用方式:$0 版本号"
echo "示例:$0 202607190832"
exit 1
fi

# 接收传入的第一个参数作为版本TAG
TAG="$1"
JAR_NAME="yudao-server${TAG}.jar"
IMAGE_FULL="192.168.91.164/rouyi-biz/yudao-server:${TAG}"

# 前置校验Jar文件是否存在
if [ ! -f "./${JAR_NAME}" ]; then
echo "错误:当前目录未找到文件 ${JAR_NAME}"
exit 2
fi
echo "✅ 校验通过,Jar包:${JAR_NAME}"

# 构建镜像
echo "🔨 开始构建镜像 ${IMAGE_FULL}"
docker build \
--build-arg JAR_TAG="${TAG}" \
-t "${IMAGE_FULL}" \
.

# 判断构建结果,成功则推送镜像
if [ $? -eq 0 ]; then
echo "📤 构建成功,推送镜像到私有仓库..."
docker push "${IMAGE_FULL}"
echo "✅ 镜像推送完成:${IMAGE_FULL}"
else
echo "❌ 镜像构建失败,终止流程"
exit 3
fi

2biz-save.sh

#!/bin/bash
# 传入版本号参数导出yudao-server镜像tar包

# 校验入参数量
if [ $# -ne 1 ]; then
echo "使用方式:$0 版本号"
echo "示例:$0 20260731"
echo "作用:导出镜像 192.168.91.164/rouyi-biz/yudao-server:传入版本号 为tar文件"
exit 1
fi

# 接收版本TAG
TAG="$1"
IMAGE_NAME="192.168.91.164/rouyi-biz/yudao-server:${TAG}"
TAR_FILE="yudao-server${TAG}.tar"

# 校验本地镜像是否存在
if ! docker images --format "{{.Repository}}:{{.Tag}}" | grep -x "${IMAGE_NAME}" >/dev/null 2>&1; then
echo "× 本地未找到镜像 ${IMAGE_NAME},无法导出"
exit 2
fi

echo "▶ 开始导出镜像:${IMAGE_NAME}"
echo "▶ 导出文件名称:${TAR_FILE}"
docker save -o "${TAR_FILE}" "${IMAGE_NAME}"

# 判断导出结果
if [ $? -eq 0 ]; then
echo "√ 镜像导出成功!文件:${TAR_FILE}"
# 打印文件大小
ls -lh "${TAR_FILE}"
else
echo "× 镜像导出失败"
exit 3
fi

#!/bin/bash
# 批量分发镜像tar并远端导入docker
# 使用方式 ./biz-pull-k8s.sh 版本号

# 入参校验
if [ $# -ne 1 ]; then
echo "使用方式:$0 版本号"
echo "示例:$0 202607311742"
echo "功能:将本地yudao-server{版本}.tar分发至166-master/167-node/168-node三台机器并自动导入镜像"
exit 1
fi

# 变量配置
TAG="$1"
TAR_FILE="yudao-server${TAG}.tar"
LOCAL_TAR="./${TAR_FILE}"
REMOTE_PATH="/root/${TAR_FILE}"
SSH_PASSWORD="root"
# 目标机器列表
NODE_LIST=(
"192.168.91.166"
"192.168.91.167"
"192.168.91.168"
)

# 校验本地tar文件是否存在
if [ ! -f "${LOCAL_TAR}" ]; then
echo "❌ 本地文件 ${LOCAL_TAR} 不存在,请先执行docker save导出镜像!"
exit 2
fi

echo "====================================="
echo "待分发文件:${LOCAL_TAR}"
echo "目标节点:${NODE_LIST[*]}"
echo "远端账号密码:root / root"
echo "====================================="

# 循环遍历每台机器执行上传+导入
for node in "${NODE_LIST[@]}"; do
echo -e "\n==================== 开始处理节点 ${node} ===================="

# 1. scp上传tar包
echo "[1/3] 上传文件至 ${node}:/root/"
sshpass -p ${SSH_PASSWORD} scp "${LOCAL_TAR}" root@${node}:/root/
if [ $? -ne 0 ]; then
echo "❌ ${node} 文件上传失败,跳过当前节点"
continue
fi
echo "✅ ${node} 文件上传完成"

# 2. 远端导入docker镜像,导入后自动删除远端tar包释放磁盘
echo "[2/3] 在${node}执行docker load导入镜像"
sshpass -p ${SSH_PASSWORD} ssh root@${node} "docker load -i ${REMOTE_PATH} && rm -f ${REMOTE_PATH}"
if [ $? -ne 0 ]; then
echo "❌ ${node} 镜像导入失败"
continue
fi
echo "✅ ${node} 镜像导入成功,已清理远端tar包"

# 3. 查看当前节点yudao-server镜像列表做校验
echo "[3/3] 校验${node}已导入镜像:"
sshpass -p ${SSH_PASSWORD} ssh root@${node} "docker images | grep yudao-server"
done

echo -e "\n==================== 全部节点执行完毕 ===================="

Dockerfile

## 基础镜像
FROM eclipse-temurin:25-jre

# 定义构建时参数:JAR_TAG,兜底默认值防止不传参报错
ARG JAR_TAG=20260718

## 创建工作目录
RUN mkdir -p /yudao-server
WORKDIR /yudao-server

## 关键修改:直接复制当前目录下的完整jar文件名
## COPY ./yudao-server20260718.jar app.jar

# 动态拼接完整jar文件名
COPY ./yudao-server${JAR_TAG}.jar app.jar


## 时区、JVM参数不变
ENV TZ=Asia/Shanghai
ENV JAVA_OPTS="-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom"
ENV ARGS=""

## 暴露端口
EXPOSE 48080

## 启动命令
ENTRYPOINT ["sh","-c","java $JAVA_OPTS -jar app.jar $ARGS"]