docker jenkins 构建springboot项目,自动化部署

前提:

使用docker创建jenkins
docker创建jenkins教程

宿主机上安装好jdk(自行搜索)
宿主机上安装好maven(自行搜索)
宿主机上安装好git(自行搜索)
这3个需要把安装地址记住,过会就要用

在这里插入图片描述

启动jenkins

docker run -d --name myjenkins -p 8080:8080 -p 50000:50000 \
-v  /var/jenkins_node:/var/jenkins_home \
-v  /usr/java/jdk1.8.0_111:/usr/local/jdk \
-v /usr/local/apache-maven-3.6.3:/usr/local/maven \
-v /usr/bin/git:/usr/local/git  \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai  jenkins/jenkins

描述:
-v 宿主机地址:jenkins内部地址
(例子: -v /usr/java/jdk.8.0_11 这是你刚刚自己装的jdk路径
:/usr/local/jdk 这是你映射到jenkins内部的虚拟地址)

进入myjenkins内部创建docker_home、moj文件夹
注意必须进入创建,不然后续构建时会出现各种权限问题

docker exec -it myjenkins bash
mkdir /var/jenkins_home/docker_home
mkdir /var/jenkins_home/docker_home/moj

然后把创建好的Dockerfile文件放到moj文件夹下面
在这里插入图片描述
这时候是不是好奇,为啥你这文件夹叫jenkins_node
因为启动的时候已经映射过去了,所以宿主机上面的还是jenkins_node,myjenkins里面的路径才叫jenkins_home
Dockerfile内容:

From java:8
#MOJManager*.jar 是你自己项目打包后的名字 这里需要改成你自己的
ADD MOJManager-0.0.1-SNAPSHOT.jar /app.jar 

#对外端口
EXPOSE 8092

ENTRYPOINT ["java","-jar","/app.jar"]

用于创建docker镜像

这时候你进入myjenkins容器

cd /var/jenkins_home/docker_home/moj/
ls
Dockerfile

前期准备完成,那么接下来我们进入jenkins去配置项目所需要的

安装Publish Over SSH

系统管理–>插件管理–>搜索框输入 publish Over SSH 点击安装
图示:
在这里插入图片描述

配置 publish Over SSH

系统管理–>系统配置

在这里插入图片描述
右下角有个Test Configuration
单机如果显示 Success 那么就成功了
在这里插入图片描述

配置jdk

系统管理–>全局工具配置
在这里插入图片描述

配置git

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

配置maven

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

新建任务:

在这里插入图片描述
名称自己定义
选择:构建一个自由风格的项目
随后点击:确定

配置项目

在这里插入图片描述

构建触发器

在这里插入图片描述

构建maven

在这里插入图片描述

选择执行shell

在这里插入图片描述
在这里插入图片描述
注意:
在这里插入图片描述
在准备工作有一步就是做这个的!!!

shell 内容:

#!/bin/sh
WORKSPACE='/var/jenkins_home/workspace/moj' #当前项目的工作空间路径,即jenkins构建后的项目根路径
PROJECT='/target' #编译文件所在路径
TARGET='/var/jenkins_home/docker_home/moj' #项目部署路径,也就是Dockerfile所在路径
NAME='moj' #项目名
PORT='8092' #项目暴露的端口
CONTAINER_ID=`docker ps -a | grep $NAME | awk '{print $1}'`
CONTAINER_NAME='MOJManager' #jar的名字

echo 容器ID $CONTAINER_ID

cd $WORKSPACE$PROJECT
echo 当前路径
pwd


echo 复制文件开始

cp $CONTAINER_NAME*.jar $TARGET



echo 复制文件结束

cd $TARGET

echo 当前路径
pwd

if [ -n "$CONTAINER_ID" ]; then


echo 停止docker容器

docker stop $NAME


echo 删除docker容器
docker rm $NAME
docker rmi $NAME
fi

echo 构建docker镜像开始
docker build -f Dockerfile . -t $NAME
echo 构建docker镜像结束

echo 启动docker容器
docker run -p $PORT:$PORT --name $NAME -d $NAME
echo 停止docker容器

配置完成,回到主页选择项目,点击 立即构建

控制台查看日志输出
如下就成功了
在这里插入图片描述

当dev这个分支有改动的时候,并且commit,push到git仓库之后。一分钟内就会自动重新构建,达到自动化部署的功能。

大功告成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值