通过脚本推送Docker镜像

sh脚本:

#!/bin/bash

wars=("war包名")

services=("服务名")

nameSpace=hr-x

TAG="v$(date "+%Y%m%d%H%M%S")"

for i in "${!services@}"; do

serverName={services\[i]};

DOCKERFILE="./Docker_$serverName"

imageName="ctg-registry-vpc.cn-shenzhen.cr.aliyuncs.com/ihr/serverName:TAG"

2. 构建新镜像(直接使用现有 Dockerfile)

docker build -t imageName . -f DOCKERFILE

3. 推送镜像

docker push $imageName

echo "操作完成:新镜像已推送至 $imageName"

4. 更新容器 -n 命名空间 --record 记录发布节点,方便回滚

kubectl set image deployment/serverName serverName=imageName -n nameSpace --record

kubectl rollout restart deployment/serverName -n nameSpace

done

bash 复制代码
#!/bin/bash

wars=("war包名")
services=("服务名")
nameSpace=hr-x
TAG="v$(date "+%Y%m%d%H%M%S")"

for i in "${!services[@]}"; do
  serverName=${services[$i]};
  DOCKERFILE="./Docker_$serverName"
  imageName="ctg-registry-vpc.cn-shenzhen.cr.aliyuncs.com/ihr/$serverName:$TAG"
  # 2. 构建新镜像(直接使用现有 Dockerfile)
  docker build -t $imageName . -f $DOCKERFILE
  # 3. 推送镜像
  docker push $imageName
  echo "操作完成:新镜像已推送至 $imageName"
  # 4. 更新容器 -n 命名空间 --record 记录发布节点,方便回滚
  kubectl set image deployment/$serverName $serverName=$imageName -n $nameSpace --record
  kubectl rollout restart deployment/$serverName -n $nameSpace
done

dockerFile

FROM ctg-registry-vpc.cn-shenzhen.cr.aliyuncs.com/ihr/服务名:v20240704172002

RUN rm -rf /usr/local/tomcat/服务名-1.0-SNAPSHOT.war

bash 复制代码
FROM ctg-registry-vpc.cn-shenzhen.cr.aliyuncs.com/ihr/服务名:v20240704172002
RUN rm -rf /usr/local/tomcat/服务名-1.0-SNAPSHOT.war
相关推荐
辉的技术笔记38 分钟前
Dify 自部署为什么跑不动?6 层瓶颈诊断法教你定位
docker
SamDeepThinking39 分钟前
从源码到代码:MyBatis-Flex 与 MyBatis-Plus 的逐项对比
java·后端·程序员
她的男孩3 小时前
Spring Boot 接 Flowable 工作流:用 3 个注解搭一个请假审批流程
java·后端·架构
荣码5 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python
plainGeekDev7 小时前
Gson → kotlinx.serialization
android·java·kotlin
小bo波15 小时前
Java Swing 图形用户界面实验 —— 从算术练习到游戏开发的完整实践
java·课程设计·gui·游戏开发·扫雷·swing
咖啡八杯17 小时前
GoF设计模式——备忘录模式
java·后端·spring·设计模式
程序员老赵1 天前
Docker 部署 Redmine:老牌开源项目管理部署实测记录
docker·开源·团队管理