#!/bin/bash

# 将本地打包的jar包生成docker镜像并push到aliyun的镜像仓库中

# api jar 所在的目录

api_files=`find /Users/yunshuodeng/Work/powerusercenter/power-dubbo-api/target -name "*.jar"`

# provider jar 所在的目录

provider_files=`find /Users/yunshuodeng/Work/powerusercenter/power-dubbo-provider/target -name "*.jar"`

# consumer jar 所在的目录

consumer_files=`find /Users/yunshuodeng/Work/powerusercenter/power-dubbo-consumer/target -name "*.jar"`

# 构建consumer docker镜像目录

consumer_des_dir="/Users/yunshuodeng/Work/mydocker/app/consumer"

# 构建provider docker镜像目录

provider_des_dir="/Users/yunshuodeng/Work/mydocker/app/provider"

# 进入构建provider docker镜像目录

cd $provider_des_dir

# 遍历api jar

for file in $api_files

do

# 判断jar文件是否存在

if [ !-f"$provider_des_dir/$file" ]; then

rm -rf "$provider_des_dir/$file"

fi

# 将api jar 复制到构建provider docker镜像目录

cp -p $file $provider_des_dir

# 判断jar文件是否存在

if [ !-f"$consumer_des_dir/$file" ]; then

rm -rf "$consumer_des_dir/$file"

fi

# 将api jar 复制到构建consumer docker镜像目录

cp -p $file $consumer_des_dir

((file_count++))

done

# 复制provider jar文件

for file in $provider_files

do

# 判断jar文件是否存在

if [ !-f"$provider_des_dir/$file" ]; then

rm -rf "$provider_des_dir/$file"

fi

cp -p $file $provider_des_dir

((file_count++))

done

# 复制consumer jar文件

for file in $consumer_files

do

# 判断jar文件是否存在

if [ !-f"$consumer_des_dir/$file" ]; then

rm -rf "$consumer_des_dir/$file"

fi

cp -p $file $consumer_des_dir

((file_count++))

done

echo "all copy success"

# 进入构建provider docker镜像目录

cd  $provider_des_dir

consumer_first=0

consumer_second=0

consumer_third=1

consumer_third_version=`docker images | grep registry.cn-shanghai.aliyuncs.com/huinongtx/user_center_consumer | sort -k2,2r | head -n 1 | awk '{print $2}'|cut -d '.' -f 3`

consumer_second_version=`docker images | grep registry.cn-shanghai.aliyuncs.com/huinongtx/user_center_consumer | sort -k2,2r | head -n 1 | awk '{print $2}'|cut -d '.' -f 2`

consumer_first_version=`docker images | grep registry.cn-shanghai.aliyuncs.com/huinongtx/user_center_consumer | sort -k2,2r | head -n 1 | awk '{print $2}'|cut -d '.' -f 1`

echo $consumer_third_version

if [ ! -n $consumer_third_version ];then

echo "is null"

else

let consumer_third=$consumer_third_version+1

fi

echo $consumer_third

if [ ! -n $consumer_second_version ];then

echo "is null"

else

let consumer_second=$consumer_second_version

fi

if [ ! -n $consumer_first_version ];then

echo "is null"

else

let consumer_first=$consumer_first_version

fi

#echo "$versionstr"

if [ $consumer_third -gt 9 ];then

let consumer_third=0

let consumer_second=$consumer_second+1

if [ $consumer_second -gt 9 ];then

let consumer_third=0

let consumer_second=0

let consumer_first=$consumer_third+1

fi

fi

consumer_next_version="$consumer_first.$consumer_second.$consumer_third"

echo $consumer_next_version

provider_first=0

provider_second=0

provider_third=1

provider_third_version=`docker images | grep registry.cn-shanghai.aliyuncs.com/huinongtx/user_center_provider | sort -k2,2r | head -n 1 | awk '{print $2}'|cut -d '.' -f 3`

provider_second_version=`docker images | grep registry.cn-shanghai.aliyuncs.com/huinongtx/user_center_provider | sort -k2,2r | head -n 1 | awk '{print $2}'|cut -d '.' -f 2`

provider_first_version=`docker images | grep registry.cn-shanghai.aliyuncs.com/huinongtx/user_center_provider | sort -k2,2r | head -n 1 | awk '{print $2}'|cut -d '.' -f 1`

if [ ! -n $provider_third_version ];then

echo "is null"

else

let provider_third=$provider_third_version+1

fi

if [ ! -n $provider_second_version ];then

echo "is null"

else

let provider_second=$provider_second_version

fi

if [ ! -n $provider_first_version ];then

echo "is null"

else

let provider_first=$provider_first_version

fi

if [ $provider_third -gt 9 ];then

let provider_third=0

let provider_second=$provider_second+1

if [ $provider_second -gt 9 ];then

let provider_third=0

let provider_second=0

let provider_first=$provider_first+1

fi

fi

provider_next_version=$provider_first.$provider_second.$provider_third

echo $provider_next_version

cd $provider_des_dir

# 判断镜像是否存在

# 构建provider镜像

docker build -t power-dubbo-provider:$provider_next_version .

# 进入构建consumer docker镜像目录

cd $consumer_des_dir

# 构建consumer镜像

docker build -t power-dubbo-consumer:"$consumer_next_version" .

echo "all build success"

# 上传镜像到aliyun仓库

# 登录到仓库

cat /Users/yunshuodeng/Work/mydocker/app/aliyun_images_repository_password.txt |  docker login -u 阿里云账户名 --password-stdin  registry.cn-shanghai.aliyuncs.com

# 将provider docker 镜像上传到user_center仓库

docker tag power-dubbo-provider:"$provider_next_version" registry.cn-shanghai.aliyuncs.com/huinongtx/user_center_provider:"$provider_next_version"

docker push registry.cn-shanghai.aliyuncs.com/huinongtx/user_center_provider:"$provider_next_version"

# 将consumer docker 镜像上传到user_center_consumer仓库

docker tag power-dubbo-consumer:"$consumer_next_version" registry.cn-shanghai.aliyuncs.com/huinongtx/user_center_consumer:"$consumer_next_version"

docker push registry.cn-shanghai.aliyuncs.com/huinongtx/user_center_consumer:"$consumer_next_version"

echo "all push success "

转载于:https://blog.51cto.com/suyanzhu/2382771

shell脚本将本地docker镜像push到阿里云镜像仓库相关推荐

  1. 超级详细:公网环境下登录 Docker 仓库: Docker Hub 或 国内阿里镜像仓库!超级解惑!(推送镜像到docker hub 或 国内阿里云镜像仓库)

    文章目录 前言: 1.登录 Docker Hub : ①.注册 或 登录 Docker Hub: ②.创建储存库: ③.开始上传镜像: ④.下载镜像: 2.使用 国内阿里云 镜像仓库: ①.开通 容器 ...

  2. Docker学习记录(三):配置 Docker 加速器:使用阿里云镜像仓库

    上两篇文章介绍了Windows环境下通过Docker Toolbox使用Docker,由于国内的网络问题,从Docker的官方镜像仓库获取镜像往往很慢,甚至经常失败,这篇文章介绍如何通过阿里云镜像库获 ...

  3. linux shell 批量清空,shell脚本批量删除docker镜像

    平时我们下载了很多镜像.但这些镜像已经很老了,我们需要把原来的镜像删除,但如果镜像很多的话,手动删除会特别麻烦,我们可以写个脚本批量删除 [root@server script]# cat docke ...

  4. docker本地镜像发布到阿里云镜像仓库

    阿里云端配置: 登陆阿里云,选择容器镜像服务 点击个人版,箭头所指向的位置后,出现如下图所示: 创建命名空间: 创建好之后如下图所示:

  5. Docker镜像的拉取和推送(阿里云镜像仓库)

    简介: 阿里云的容器镜像服务个人版是不要钱的,个人可以免费创建3个命名空间和最多可创建300个免费的镜像仓库供以使用,平时可以使用这项服务对个人的镜像进行管理,就可以不使用国外的DockerHub来对 ...

  6. idea打包meven镜像_docker打包maven项目推送到阿里云镜像仓库

    自从上次用derrick 创建 nodejs 项目容器之后,以此为砖来引出学习Dockerfile的玉,用docker创建maven项目镜像也分两步走.使用maven plugin docker 创建 ...

  7. 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上

    一个用于构建和推送Docker镜像的Maven插件. 使用Maven插件构建Docker镜像,将Docker镜像push到DockerHub上,或者私有仓库,上一篇文章是手写Dockerfile,这篇 ...

  8. 【Android RTMP】NV21 图像旋转处理 ( 快速搭建 RTMP 服务器 Shell 脚本 | 创建 RTMP 服务器镜像 | 浏览器观看直播 | 前置 / 后置摄像头图像旋转效果展示 )

    文章目录 安卓直播推流专栏博客总结 一. 编写快速搭建 RTMP 服务器 Shell 脚本 二. RTMP 快速搭建方法 三.创建阿里云 RTMP 服务器镜像 四.浏览器查看直播内容 五.前置 / 后 ...

  9. 跨服务器获取文件shell,shell脚本实现本地文件与服务器文件同步

    为何创建此脚本是因为方便项目的布署,不需要手动地去同步不同的项目,而只需要简单的执行shell脚本,输入项目名就能发布到服器上. 1.shell文件代码 #!/bin/sh read -t 30 -p ...

最新文章

  1. 经验 | 详解 Faster R-CNN目标检测的实现过程
  2. pandas.Series.values 将Series内的数值以ndarray或ndarray-like的形式返回,取决于原Seires的数据类型
  3. 人造神经元计算速度超过人脑
  4. react 调用 html5,React-Native Webview 和H5交互的两种方式
  5. 对于数据库表排他更新的理解
  6. Facebook 开源的快速文本分类器 FastTex
  7. Android 升级JDK及配置问题。
  8. heX:用HTML5和Node.JS开发桌面应用
  9. nginx启动vue_Docker部署前端Vue
  10. labuladong算法小抄pdf下载
  11. Python官方文档中文版在线教程
  12. 雅思c1语言等级,雅思分数各代表什么水平
  13. NOIP2002 产生数
  14. mysql是如何保证持久性的?
  15. PPO:Proximal Policy Optimization Algorithms
  16. python面试技术面都过了,薪资都谈好了20K*13结果还是被刷了,问HR原因竟是...
  17. SDNFV Fest论坛成功举办 全景展现SDN/NFV测试成果
  18. 《HTTP权威指南》第三章学习总结
  19. C语言指针之二malloc的用法及详解
  20. 深入浅出内存管理--kmalloc支持的最大内存分配

热门文章

  1. iOS项目的目录结构和开发流程
  2. shell--局部变量
  3. MyEclipse 快捷键1(CTRL)
  4. 像我这种背景的人跑到微软来干什么?
  5. poj2752 字符串子KMP应用
  6. Leetcode 532.数组中的K-diff数对
  7. Tensorflow基础-mnist数据集
  8. VMSS上用Managed Disk和Data Disk进行自动扩展(1)
  9. svn 迁移到 git 仓库并保留 commit 历史记录
  10. 软件工程的实践项目的自我目标