Jenkins利用阿里镜像仓库部署springboot应用

一、本次目标

使用jenkins将gitee代码库中的代码编译后打成docker镜像包并发布到阿里云个人镜像仓库,之后在远程服务部署该镜像包

二、环境准备

阿里云镜像仓库
登陆阿里云查找“容器镜像服务”
在这里插入图片描述
进入容器镜像服务
在这里插入图片描述
我们需要在jenkins所在的机器上进行授权,否则编译打包好的docker镜像无法推送至阿里的镜像仓库中,可以参考下文
docker推送镜像至阿里私有镜像仓库
进入到个人实例
在这里插入图片描述

# 登陆授权
docker login --username=自己的用户名 registry.cn-hangzhou.aliyuncs.com
# 取消授权
docker logout registry.cn-hangzhou.aliyuncs.com

在这里插入图片描述

授权完成之后我们就可以正常向阿里镜像仓库推送docker镜像文件了。

三、jenkins创建项目

1、添加全局配置参数,这里我配置了版本号信息

在这里插入图片描述

2、源码配置

在这里插入图片描述

3、maven打包&docker镜像包生成

在这里插入图片描述

4、远程机器执行部署脚本

在这里插入图片描述
完整的配置信息如下图
在这里插入图片描述
本次部署涉及到几个重要的脚本如下:
Dockerfile文件内容如下:

# 该镜像需要依赖的基础镜像
FROM java:8
# 指定维护者的名字
MAINTAINER zhanghang
VOLUME /tmp
RUN echo "export LC_ALL=zh_CN.UTF-8"  >>  /etc/profile
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 将当前目录下的jar包复制到docker容器的/目录下
ADD ./target/button_swagger.jar button_swagger.jar
RUN bash -c 'touch /button_swagger.jar'

expose 8099
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java","-jar","/button_swagger.jar"]

deploy.sh脚本内容如下:

#!/bin/bash
version=$1
imagename=button-swagger
container=button-swagger
docker build -t button-swagger:$version .
docker tag button-swagger:$version registry.cn-hangzhou.aliyuncs.com/zhanghangns/button-swagger:$version
docker push registry.cn-hangzhou.aliyuncs.com/zhanghangns/button-swagger:$version
echo "执行docker images"
docker images 
echo "----开始删除本地镜像----"
docker rmi button-swagger:$version
docker rmi registry.cn-hangzhou.aliyuncs.com/zhanghangns/button-swagger:$version
echo "----删除本地镜像完成----"

button-swagger.sh脚本内容如下:

#!/bin/bash
version=$1
imagename=button-swagger
container=button-swagger
echo "远程机器执行docker ps"
docker ps 
if [[ "$(docker inspect $container 2> /dev/null | grep $container)" != "" ]]; 
then 
  echo $container "容器存在,停止并删除"
  echo "docker stop" $container
  docker stop $container
  echo "docker rm" $container
  docker rm $container
else 
  echo $container "容器不存在"
fi
# 删除镜像
echo "远程机器执行docker images"
docker images 
if [[ "$(docker images -q $imagesname 2> /dev/null)" != "" ]]; 
then 
  echo $imagesname '镜像存在,删除它'
  docker rmi $(docker images -q $imagesname 2> /dev/null)
else 
  echo $imagesname '不存在'
fi
docker pull registry.cn-hangzhou.aliyuncs.com/zhanghangns/button-swagger:$version
docker run -d --name button-swagger -p 8099:8099 registry.cn-hangzhou.aliyuncs.com/zhanghangns/button-swagger:$version

四、构建

在这里插入图片描述
查看部署log
在这里插入图片描述

五、访问测试

http://ip:port/swagger-ui.html#/
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值