前言
如果其中有什么错误或者遇见什么问题都可以评论区留言,我看见以后会及时帮住大家的
本文着重讲解了如何使用jenkins + docker去一键部署上线springboot项目,搭建成功以后开发人员只需要将代码提交到git上面,然后去jenkins点击一下项目构建,那你服务器上的项目将会自动从git上拉代码并进行docker容器打包启动.可以很大程度的减少开发人员精力以及工作量!
本文章示例jenkins版本为 - 2.346.3
服务器环境需求 :
需要有maven环境
需要有git环境
需要有java环境
需要有docker服务 - docker安装可以看我这篇文章 : linux如何安装docker
需要安装jenkins服务 - jenkins安装可以看我这篇文章 : 安装jenkins的三种方法
配置jenkins
将jenkins用户加入docker用户组
查看是否有docker用户组
cat /etc/group
没有的话新建一个
sudo groupadd docker
查看是否有jenkins用户,一般war包方式启动jenkins的需要自建一个jenkins
cat /etc/passwd
没有的话新建一个
adduser jenkins
添加jenkins用户到docker用户组
newgrp docker
查看jenkins所在的用户组
groups jenkins
重启jenkins
#yum安装的重启方式
systemctl restart jenkins
#war包的重启方式
ps aux |grep jenkins #找见jenkins的pid
kill -9 [jenkins的pid]
然后再启动jenkins
开启docker远程访问权限,修改docker.service配置文件
vim /usr/lib/systemd/system/docker.service
添加以下内容
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
重新读取配置
systemctl daemon-reload
重启docker
systemctl restart docker
如果开启的防火墙需要放行2375端口以及开启
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 2375 -j ACCEPT
jenkins环境配置
进入jenkins首页点击侧边栏Manage Jenkins -> Global Tool Configuration
jenkins配置jdk环境
jenkins配置git环境
没有git服务,可以使用以下命令进行安装git
sudo yum install -y git
whereis git #查看git安装目录,一般默认是/usr/bin/git
jenkins配置maven环境
保存环境配置,然后进入插件管理中心
点击已安装,搜索maven看看maven插件是否安装,有的话就不需要重复安装了
没有的话,点击可选插件,然后搜索maven,进行安装maven插件
安装完成之后退出到jenkins首页,点击新建Item
输入项目名称,选择Freestyle project
然后进入配置中心,选择源码管理 -> git -> 输入项目的git地址,然后点击添加
添加凭证
点击添加,然后选择该凭证
然后在点击构建环境
选择增加构建步骤 -> 调用顶层maven目标 , maven版本就选你上面新增的maven,目标输入以下命令
clean install -Dmaven.test.skip=true
然后点击保存,然后我们测试一下,看看能不能把git上的项目拉下来并打成jar包
第一次构建需要下载pom中的依赖所以会慢点,等构建完成以后点击进去看控制台输出,最后可以看见打的jar包的路径
去看一下该文件夹下是否有该jar包
cd /root/.jenkins/workspace/demo/target/
ll
运行项目
编写dockerfile文件放到你的项目根目录,然后提交到git,内容如下,记得把后面的注释都删掉,要不会报错
FROM registry.cn-hangzhou.aliyuncs.com/sangmuen/java:8 #这是我自己上传到阿里云的java8,docker容器因为dockerhub上的官方java8下架了,你们可以用也可以去dockerhub上找找其他的!
MAINTAINER jy1997 4044092@qq.com #发布者,随意填
ADD target/jenkins-demo-1.0-SNAPSHOT.jar jenkins-demo.jar #把jar加入到容器中并重命名为 jenkins-demo.jar
CMD ["--server.port=9999"]
EXPOSE 9999 #项目端口暴露
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
ENTRYPOINT ["java","-jar","/jenkins-demo.jar.jar"] #启动该jar包
修改jenkins配置,还是到那个配置中的构建环境 -> 构建 -> 增加构建步骤 -> 执行shell
输入以下命令,记得后面的注释要删掉
cd /root/.jenkins/workspace/demo #进入jar包存放路径
docker stop demo || true # demo是项目名称,随意起
docker rm demo || true #删除同名容器,以防止构建容器失败
docker rmi demo || true
docker build -t demo . #根据dockerfile 构建docker容器
docker run -d -p 9999:9999 --name demo demo:latest #启动docker容器
然后再去构建一下项目,等构建完项目使用以下命令就可以看见自己的项目已经打包成docker容器并启动了
docker ps
查看日志
docker logs -tf --tail 600 a847
项目就成功启动了,以后你只需要把代码提交到git上然后来jenkins上点一下构建,那你的项目就会从git上拉下来代码并打包成docker容器然后启动了!