Jenkins利用阿里镜像仓库部署springboot应用
- 一、本次目标
- 二、环境准备
- 三、jenkins创建项目
- 1、添加全局配置参数,这里我配置了版本号信息
- 2、源码配置
- 3、maven打包&docker镜像包生成
- 4、远程机器执行部署脚本
- 四、构建
- 五、访问测试
一、本次目标
使用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
ADD ./target/button_swagger.jar button_swagger.jar
RUN bash -c 'touch /button_swagger.jar'
expose 8099
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#/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)