docker-compose 运行jenkins 并一键发布springboot项目2024

文档时间:

2024-05-07

jenkins一键发布原理个人理解:

本质就是通过jenkins 配置git地址,然后通过地址拉取代码到服务器上,

然后jenkins 再通过maven把拉取下来的进行打包。

再通过jenkins 配置的shell命令,在服务器上面运行项目就完成了。

环境:

centos 7.9

docker:25.0.3

docker-compose:v2.20.2

jenkins 2.440.1

gitee

远程linux工具的:Xterminal

任意一个已经测试好打包jar运行没问题的springboot项目。

(这里是用的gitee做源码管理,所以需要把这个源码上传到gitee上)

开始:

我这里使用的是云服务器,用的centos 7.9,先安装好docker和docker-compose。附教程:

linux安装docker及docker-compose 部署spring boot项目_linux docker 部署springboot-CSDN博客

准备好后创建一个目录,我这里使用的是/data/docker/jenkins,

然后创建jenkins的docker-compose.yml,需要注意,这里映射了宿主机的docker命令,加上映射的两个docker目录,才可以才jenkins上面运行docker命令。

version: '3.8'

services:
  jenkins:
    image: jenkins/jenkins:2.440.1
    container_name: jenkins
    ports:
      - "9001:8080"
      - "9002:50000"
    volumes:
      - ./data/jenkins_home/workspace :/var/jenkins_home/workspace 
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
    restart: always
    privileged: true
    user: root

然后在/data/docker/jenkins目录下运行

docker-compose up 

运行后可以看见这样的,箭头处是初始密码。

成功运行后,直接通过端口访问:http://8.***.226.**:9001/,然后输入上面运行后日志打印出来的初始化密码。

选择安装推荐插件

等待安装

安装成功后会自动跳转到创建用户页面,如果安装有报错,能点继续就点继续,后面运行没问题就不用管。

直接点击保存并完成,这里不用改。

进来后就是这样,点击箭头位置。

选择插件安装

选择Available plugins,

安装 Maven Integration 、Publish Over SSH、Gitee

这个就是安装的记录

然后配置jenkins的maven,打包的时候需要用到。

2

3,我这里用的是maven的3.8.8版本。

配置完成后,再新建一个项目测试一下。

输入项目名称,然后选择Freestyle project,点击确认。

点击确认后的页面

然后往下滑找到源码管理,选择git,然后输入git的地址,再点击添加,添加git的凭证。

按图选择,然后输入账号和密码。点击添加。

添加凭证后,在Credentials下选择刚才添加的凭证。

然后选择Build Steps、选择增加构建步骤、调用顶层maven目标。

然后选择上面新增的maven,输入打包命令。再点击保存。

clean install -Dmaven.test.skip=true

项目保存好后,点击立即构建。等待下方的构建历史出现记录。

构建历史出现后,点击记录,然后点击控制台输出,可以查看打印的日志。

根据日志可以看出maven打包成功了,我们可以回到服务器上面,到jenkins的docker-compose.yml配置映射出来的目录下查看。根据如图可以看到当前项目一键打包成jar文件了。

到这里使用jenkins配置maven一键打包就成功了。

接下来再把打包好的通过shell命令直接运行,或者用docker运行。

我这里就说下docker运行,可以看见上面图片,项目根目录下面有个Dockerfile文件,

FROM java:8
MAINTAINER wto
VOLUME /tmp
ADD target/SbDemo1-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Dfile.encoding=UTF-8","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=18081","-jar","/app.jar"]

jenkins通过maven打包后,再用jenkins运行Dockerfile就可以运行项目了,

回到jenkins刚才新建的项目。选择配置。

按图选择添加构建步骤-执行 shell。

然后输入运行dockerFile的命令,需要注意三点:

1、cd命令的路径是容器里面的路径,不是宿主机的路径。

2、docker容器的名称不能有大写,我这里用的小写加-。

3、注意这里的shell命令是在jenkins的docker容器里面运行的,不是直接运行在宿主机上的。因为docker-compose文件里加了宿主机的docker命令映射,所以这里运行的docker命令是在宿主机上面运行的。

cd /var/jenkins_home/workspace/sbTest1
docker stop sb-test1 || true
docker rm sb-test1 || true
docker rmi sb-test1 || true
docker build -t sb-test1 .
docker run -d -p 8081:8081 --name sb-test1 sb-test1:latest

保存后点击立即构建。等一两秒构建历史就会出现构建记录。

查看构建记录的控制台日志就可以看见已经打包成功了,

最后回到云服务器,ctrl+c结束docker-compose运行的jenkins。然后输入命令后台运行jenkins。

docker-compose up -d

再输入命令 docker ps 查看已经运行的容器。

docker ps

到这里使用jenkins一键部署springBoot项目就成功了。

原本是想用docker-compose,但是没有找到jenkins的shell命令使用docker-compose的方法,如果有大佬会,麻烦教一下,感谢。

参考文档:

基于Docker+Jenkins实现自动部署SpringBoot+Maven项目_jenkins +docker-CSDN博客

Jenkins + Docker 一键自动化部署 SpringBoot 应用最精简流程-CSDN博客

 如果有什么问题,欢迎大佬指正。

 最后如果对你有一点点帮助,麻烦支持一下。

全国寄快递5元起,电影票8.8折。更多优惠微信关注公众号:【折价寄件】

感谢阅读!!!!

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值