Jenkins+Docker+Maven部署springboot项目
- 概述
-
- 介绍
- 所需条件
- 安装jenkins
概述 在公司实习期间接触到了Jenkins进行自动化项目部署,学习过程中写了个小demo实现,写下这篇文章对过程进行简单记录。
介绍 个人理解jenkins就是辅助项目部署的工具,它的主要功能是通过git拉去写好的代码通过maven进行打包后将jar/war包部署到指定容器内运行。
所需条件 1.一台虚拟机,或服务器,当然也可以是本地电脑(但是这样做明显意义不大)。
2.虚拟机或服务器安装linux操作系统(本例中使用阿里云服务器,系统为centos7,以下使用服务器代指服务器或虚拟机)。不管是虚拟机还是服务器都不建议装图形用户界面严重影响体验占用内存造成卡顿。虚拟机或服务器开启后使用xshell7或其他工具进行远程执行linux命令即可,其附带的xftp文件上传功能也简单易用。
一切根本:安装jdk 这里使用的是1.8版本,linux下安装教程较多这里不再赘述,看官请记得配置环境变量,安装完成后java --version进行检测是否安装成功。3.服务器上安装docker
可以使用命令
yum -y install docker-ce
具体安装不再赘述 可参考:
linuxdocker安装
4.linux安装maven
到maven官网或其他网站下载 apache-maven-3.6.0.tar.gz
上传至服务器的/usr/local/文件夹或其他位置,执行tar -zxvf apache-maven-3.6.0.tar.gz命令解压即可。解压后同文件夹下会有 apache-maven-3.6.0即maven的安装位置,这里需记录下此路径(pwd命令查看当前路径)
/usr/local/apache-maven-3.6.0以及他的配置文件位置
/usr/local/apache-maven-3.6.0/conf/settings.xml稍后会用到。
如果安装在其他文件夹记得记录对应位置,如果忘记可通过
whereisapache-maven-3.6.0
命令进行查询。
此外通过wget或yum等linux自带方式进行安装也类似,重要的是记录以上两个安装位置的路径
5.服务器安装git
有两种方式下载压缩包及yum,这里采用yum方式较为简单
执行命令:
yum -y install git
之后可查看git默认安装位置
/usr/bin/git记录下此路径稍后要用
安装jenkins 通过以上步骤,基本环境已搭建完成,接下来安装jenkins,因为之前已经下载了docker所以其实是可以使用docker下载镜像进行安装,但由于路径等相关配置较麻烦,这里采用传统方式安装。
文章图片
文章图片
1.到jenkins官网点击download-> 下载war包,下载后的文件为jenkins.war(windows,linux通用体现了Java的跨平台特性)
2.下载完成后上传至服务器根路径的/jenkins/目录下(mkdir建的,自行选择位置,无伤大雅)
3.在/jenkins/目录下执行:
java-jar jenkins.war --httpPort=8080
》》》》》注意:打印出的信息中有初始密码很明显记录下来马上要用。
运行起来后来到本地电脑打开浏览器
输入地址:
http://服务器ip:8080即可见到(下图中的密码即上面提到的初始密码,粘贴过来即可)
如我的地址:
http://39.103.128.111:8080
文章图片
之后将见到
文章图片
点击推荐的插件等待安装完成,有失败的不要慌 点击下方左侧重试按钮,多试几次,还是不行就点右侧暂且跳过进去之后可以再在插件中安装。
然后创建管理员账户即以后登录管理所用的账号记录下账号密码
文章图片
下一步实例配置
文章图片
这里不建议更改直接下一步
即可进入,若不能进入到服务器命令窗口ctrl+c停止jenkins运行,然后跟之前启动一样重新运行下war包 在到本地电脑刷新页面即可(要输入上上一步注册的账号密码)
点击左侧系统管理
文章图片
右侧的插件管理可安装之前初始化时安装失败的插件,稍后会说。
这里先进行全局工具配置
这里填入之前安装git和maven时记录的信息即可
文章图片
文章图片
配完之后保存
来到上面系统管理->插件管理
文章图片
除了之前初始化安装的推荐插件外还要在可用插件中搜索安装两个额外的插件
1.Maven Integration
2.Git plugin
文章图片
点击新建任务
文章图片
填入项目名选择构建一个maven项目
上面插件没装这里不能构建一个maven项目
文章图片
方框中填入github项目地址(gitee,gitlab,svn等相同)
点击箭头处 弹框中输入git账号密码保存后圆圈处即可选择
文章图片
先点击箭头处选择执行shell
然后命令处输入
#!/bin/bash
echo "开始运行"
echo "停止app"
docker stop app
echo "删除容器app"
docker rm app
echo "删除镜像yzx/accout-mange:latest"
docker rmi -f yzx/accout-mange:latest#要把jar包制作成镜像就必须使用docker build命令 同时必须有对应的Dockerfile(指定jar包位置是在Dockerfile指定)
# . 表示当前目录 -f 参数指定Dockerfile文件-t 表示 制作的镜像tag
cd /var/lib/jenkins/workspace/accout-mange
docker build -f Dockerfile-tyzx/accout-mange:latest.echo "新容器id:"
docker create --name app \
-p 9999:8080 \
-v /tmp/accout:/tmp/accout \
yzx/accout-mange:latestecho "启动容器名:"
docker start appecho "执行完毕,浏览器打开IP:9999浏览"
注意:
Jenkins没有操作docker的权限,所以必须先至此,服务器部署完成,不过还没结束稍安勿躁。
chmod 777 /var/run/docker.sock
上面填写的git项目地址中的项目需要进行一点简单配置
这里以我的jenkins项目为例
文章图片
一个简单的springboot项目 maven install之后target目录下生成的jar包名为
jenkins-1.0-SNAPSHOT.jar注意上面多出来的DockerFile文件 new file 名字输入这个即可
这是打包将jar包打包进docker镜像的关键
#构建镜像的Dockerfile
# From java image, version : 8
FROM java:8# 挂载app目录
#VOLUME /app##将maven构建好的jar添加到镜像中(前面为打包出的jar包名,后面任意与上上步执行shell中一致即可)
ADD target/jenkins-1.0-SNAPSHOT.jar accout-mange-1.0.jarEXPOSE 8080ENTRYPOINT ["java", "-jar", "accout-mange-1.0.jar"]
项目是想了一个简单接口返回一个字符串展示在页面上
文章图片
将项目push到git上(上面填的git地址)
即可
文章图片
上面创建完任务点击方框位置进入
文章图片
点击立即构建成功则下方蓝色小球 红色小球为第一次失败了
文章图片
点击红圈处可以查看构建详情及报错信息
文章图片
比如我第一次失败为网络问题没连上git
构建成功出现蓝色小球后即可进行测试
浏览器输入服务器地址+端口/hello 收到返回的字符串
文章图片
【java项目部署|Jenkins+Docker+Maven部署springboot项目】创作不易 欢迎点赞 有问题评论私聊都可(虽然我经常看不到)。
推荐阅读
- 使用Jenkins+docker 部署springboot项目
- jenkins|Docker+Jenkins+Gitee实现自动化部署
- 开发工具|SpringBoot + maven + Jenkins + docker 实现docker集群一键自动化部署
- spring|Docker+jenkins+gitee+springboot实现自动化部署流程(详细教程)(附下载工具地址)(1)
- spring|Docker+jenkins+gitee+springboot实现自动化部署流程(详细教程)(附下载工具地址)(2)
- jenkins|jenkins+docker+springboot自动化部署
- 个人笔记|Linux:docker+jenkins+gitee+springboot实现自动部署
- 使用分支——处理Git merge 冲突
- git|基于IDEA的Git撤销本地修改和前进后退选择提交版本