Jenkins+docker发布Springbot服务的实现

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/
目录一.开发Springbot应用二.配置docker三.配置Jenkins

一.开发Springbot应用

新建多个环境的配置文件

Jenkins+docker发布Springbot服务的实现插图

bootstrap.yaml

Jenkins+docker发布Springbot服务的实现插图1

 通过变量获取不同环境active 

bootstrap-dev.yml

Jenkins+docker发布Springbot服务的实现插图2

 bootstrap-pre.yaml

Jenkins+docker发布Springbot服务的实现插图3

预发布及生产环境配置文件走nacos

二.配置docker

新增Dockerfile文件

Jenkins+docker发布Springbot服务的实现插图4

Dockerfile内容

# Docker image for springboot file run # VERSION 0.0.1 # Author: eangulee # 基础镜像使用java FROM openjdk:8 # 作者 MAINTAINER qql <xxx@qq.com> # VOLUME 指定了临时文件目录为/tmp。 # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp VOLUME /tmp # 设置时区 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 将jar包添加到容器中并更名为app.jar ARG JAR_FILE ADD target/cdc-0.0.1-SNAPSHOT.jar /app.jar #替换成你项目打包后的文件名称 #配置项目端口 EXPOSE 8020 # 运行jar包 RUN bash -c touch /app.jar ENTRYPOINT [“java”,”-jar”,”/app.jar”,”–spring.profiles.active=${env}”] #通过变量传递不同的环境

在服务器项目下新增docker-composer.yaml文件 ,不要放在代码版本库

version: 3 services: project-demo: container_name: cdcd-demo #自定义容器名称 image: qql/cdcd:0.0.1 #镜像名称 restart: always environment: env: dev #环境,不同环境使用不同环境名称 volumes: # 同步时间 – /etc/localtime:/etc/localtime:ro # 如果项目有些日志或者写文件,需要同步到宿主机器,也需要定义相应的卷 # – ./data:/etc/project-demo/data # – ./log:/etc/project-demo/log ports: – 8080:8020

三.配置Jenkins

Jenkins+docker发布Springbot服务的实现插图5

Jenkins+docker发布Springbot服务的实现插图6

Jenkins+docker发布Springbot服务的实现插图7

新增部署shell脚本

Jenkins+docker发布Springbot服务的实现插图8

#!/bin/bash echo “当前位置” pwd mvn clean package -Dmaven.test.skip=true #切换到项目目录 cd cdc pwd #获取最新版本tag LatestTag=$(git describe –tags `git rev-list –tags –max-count=1`) echo -e “最新版本tag……” echo -e “$LatestTag” echo -e “镜像地址” #获取本机IP local_ip=`ifconfig eth0 | grep inet | awk {print $2} | sed -e “s/addr://”` echo ${local_ip} #制作docker镜像 docker build -f Dockerfile -t qql/cdc:1.0 . echo “制作成功” cd ../docker pwd #根据docker-composer.yaml文件新建获取重新构建docker容器 docker-compose -f docker-composer.yaml -p cdc up -d step=1 #间隔的秒数,不能大于60 content=”” for (( i = 0; i < 60; i=(i+step) )); do status_code=$(curl -I -m 10 -o /dev/null -s -w %{http_code} 127.0.0.1:8080/index/index) #访问服务一个接口验证容器是否启动 echo $status_code if [ $status_code != 200 ]; then sleep $step echo “服务还没有启动,耗时”$i”秒” else echo “服务已经启动,耗时”$i”秒” break fi if [ $i == 59 ]; then echo “启动失败” exit -1 fi done { docker rmi `docker images | grep none | awk {print $3}` && / } || { echo delete null images error(不需要处理) }

 保存,则就可以执行部署

Jenkins+docker发布Springbot服务的实现插图9

Jenkins+docker发布Springbot服务的实现插图10

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容