jenkins+docker发布java微服务

使用jenkins通过docker方式自动发布java后端服务

前置条件:服务器提前安装jdk,maven,docker服务,jdk镜像。
jenkins安装过程省略(如果使用docker安装jenkins,注意将jenkins的home和workspace映射到宿主机,将宿主机docker目录、jdk目录、maven目录挂载到jenkins容器中!!!)

1、安装插件

jenkins首页点击Manage Jenkins,点击Manage Plugins

在这里插入图片描述

点击available,搜索框输入需要的插件,勾选相应插件,点击Install without restart

在这里插入图片描述

目前已知需要使用的插件如下:


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


2、全局工具配置

首页点击Manage Jenkins、点击Global Tool Configuration,配置JDK和maven,点击保存(jenkins如果是容器安装,则配置jenkins容器内挂载的jdk和maven安装目录)
在这里插入图片描述
在这里插入图片描述

3、配置Publish over SSH(jenkins安装在宿主机可省略)

首页点击Manage Jenkins、点击Configure System
在这里插入图片描述

配置Publish over SSH,填写admin用户密码,点击保存
在这里插入图片描述

4、创建项目

首页点击New Item
在这里插入图片描述

输入项目名,选中构建一个maven项目(例如ib-bpm),点击OK
在这里插入图片描述

5、配置项目git源码地址,shell脚本

首页点击项目,点击config
在这里插入图片描述

在这里插入图片描述

配置代码仓库git地址,git用户密码,分支
在这里插入图片描述

勾选Build whenever a SNAPSHOT dependency is built
在这里插入图片描述

配置项目目录,打包参数

clean install -Dmaven.test.skip=true

在这里插入图片描述

选中构建后执行ssh中shell脚本
在这里插入图片描述

拷贝打包生成的jar到目标服务器(可为本机),配置shell脚本
在这里插入图片描述

shell脚本内容:

#!bin/sh
pwd
cd /data/jenkins_home/workspace/ib-bpm/ib-bpm
#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=ib-bpm
TAG=latest
SERVER_PORT=7004
pwd
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
#判断是否存在容器,如果存在删除旧的容器
if [ -n "$CID" ]; then
  echo "存在容器$SERVER_NAME, CID-$CID"
  docker stop $SERVER_NAME
  docker rm $SERVER_NAME
fi
# 判断docker镜像是否存在,存在则删除旧的镜像
if [ -n "$IID" ]; then
  echo "存在192.168.5.71:5609/docker_rep/$SERVER_NAME:$TAG镜像,IID=$IID"
  docker rmi 192.168.5.71:5609/docker_rep/$SERVER_NAME:$TAG
fi
pwd
#cd ./ib-bpm
# 构建docker镜像
docker build -t 192.168.5.71:5609/docker_rep/$SERVER_NAME:$TAG .
# 运行docker容器
docker run --restart=always --network=host --name $SERVER_NAME -e SPRING_PROFILES_ACTIVE=dev -d -p $SERVER_PORT:$SERVER_PORT -p 9058:9058 192.168.5.71:5609/docker_rep/$SERVER_NAME:$TAG

#PUSH镜像到远程harbor仓库
#docker login 192.168.5.71:5609 -u harbor用户名 -p harbor用户密码 
#docker push 192.168.5.71:5609/docker_rep/$SERVER_NAME:$TAG

#删除多余jar
rm -rf *.jar

点击保存
ps:192.168.5.71:5609/docker_rep为harbor仓库地址,镜像名必须为:harbor仓库地址/镜像名:版本号,才能push到远程仓库。

6、构建项目,生成镜像,运行容器

在这里插入图片描述
进入服务器查看是否生成镜像,运行容器



注意:

1.宿主机必须包含jdk镜像(比如openjdk:8-jdk-alpine)
Dockerfile中会引入该镜像

2.Dockerfile放置在项目ib-bpm和pom.xml同级目录下(若为其它目录需改shell脚本)
Dockerfile内容为:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY *.jar app.jar
ENTRYPOINT ["sh", "-c", "java -jar app.jar"]

欢迎留言指正!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值