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

文档时间:

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折。更多优惠微信关注公众号:【折价寄件】

感谢阅读!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/598588.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu20.04搭建Fabric教程

本章节环境配置 ubuntu: 20.04 go:1.16.3 docker: 20.10.6 docker-compose: 1.27.2 fabric:2.2.0 fabric-ca: 1.4.9 一 搭建通道 新建工作目录 mkdir fabric && cd fabric配置go代理 go env -w GO111MODULEon ​ #更新下载包的镜像 go env …

Python中GDAL批量将多个遥感影像各波段数值缩小10000倍的方法

本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像文件的方法。 首先,看一下本文的具体需求。我们现有一个文件夹,其中含有大量.ti…

数据结构:环形链表的实战指南

✨✨小新课堂开课了,欢迎欢迎~✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:http://t.csdnimg.cn/oHJAK(数据结构与算法) 小新的主页:编程版小新-CSDN博客 …

嵌入式C语言教程:实现声音监测系统

声音监测在许多应用中都十分重要,如噪声控制、安全系统、和智能家居控制。 本教程将介绍如何在STM32微控制器上使用模数转换器(ADC)和声音传感器实现实时声音监测系统。 一、开发环境准备 硬件要求 微控制器:STM32F746NG&…

Unity技术学习:渲染大量物体的解决方案,外加RenderMesh、RenderMeshInstanced、RenderMeshIndirect的简单使用

叠甲:本人比较菜,如果哪里不对或者有认知不到的地方,欢迎锐评(不玻璃心)! 导师留了个任务,渲染大量的、移动的物体。 寻找解决方案: 当时找了几个解决方案: 静态批处…

使用STM32的FLASH保存数据

使用STM32的FLASH保存数据 为了防止“掉电丢失数据”,我们最先想到的是EEPROM,但是若考虑到降低成本和PCB布线的空间,使用CPU内部的FLASH空间来保存数据,是最好的选择。尤其是在STM32芯片上,应用案例还是比较多的。 …

GitHub搭建免费博客

一、GitHub仓库准备 ​ 搭建博客需要准备两个仓库。一个存放博客图床的仓库,另一个存放博客网站的仓库。 1.1、图床创建 新建仓库 第一步: ​ 第二步: 生成Token令牌 点击右上角头像->Settings->下拉,直到左侧到底&#…

【Word】写论文,参考文献涉及的上标、尾注、脚注 怎么用

一、功能位置 二、脚注和尾注区别 1.首先脚注是一个汉语词汇,论文脚注就是附在论文页面的最底端,对某些内容加以说明,印在书页下端的注文。脚注和尾注是对文本的补充说明。 2.其次脚注一般位于页面的底部,可以作为文档某处内容的…

原型模式类图与代码

现要求实现一个能够自动生成求职简历的程序,简历的基本内容包括求职者的姓名、性别、年龄及工作经历。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。 采用原型模式(Prototype)来实现上述要求,得到如图 7.25 所示的类图。 原…

QT+多线程编程

QT的多线程编程有两种 1、自定义类继承QThread 第一种是自定义一个类继承于QThread,重写run()方法来实现。然后当需要使用线程的时候你就新建一个自定义对象,然后调用start方法开始运行。 下面的例子是widget里面创建一个线程,然后调用sta…

MySQL数据库练习——视图

schooldb库——utf8字符集——utf8_general_ci排序规则 先创建库,再去使用下列的DDL语句。 DDL CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT COMMENT 学号,createDate datetime DEFAULT NULL COMMENT 创建时间,modifyDate datetime DEFAULT NULL …

电度表抄表是什么?什么叫电度表抄表?

一、电度表抄表的概念和作用 电度表抄表是电力系统中一个基本但非常重要的阶段。它指的是对安装在用户处电度表开展载入,记录下来电力消耗的值,便于测算电费的一个过程。此项工作不仅有利于供电公司精确扣除电费,都是监控和管理电力工程应用…

【Pytorch】4.torchvision.datasets的使用

什么是torchvision.datasets、 是pytorch官方给出的关于cv领域的训练数据集,我们可以用官方提供的数据集进行学习与训练 如何查看 我们可以进入Pytorch官网 切换一下版本到v0.9.0,就可以看到官方给出的数据集了 同时也有官方训练好的cv模型可以供我们…

Linux(openEuler、CentOS8)企业内网主备DNS服务器搭建

本实验环境为openEuler系统<以server方式安装>&#xff08;CentOS类似&#xff0c;可参考本文&#xff09; 知识点 什么是DNS&#xff1a;DNS服务器&#xff0c;即域名服务器&#xff08;Domain Name Server&#xff09;&#xff0c;是进行域名和与之相对应的IP地址转换…

硬件工程师必读:10条职业发展黄金法则!

在快速发展的科技时代&#xff0c;硬件工程师作为推动技术创新和产业升级的重要力量&#xff0c;其职业发展之路既充满挑战也蕴含无限机遇。为了在这条道路上稳步前行&#xff0c;我们首先需要了解硬件产品的研发流程。 在这个过程中&#xff0c;公司内的每个岗位都发挥着不可或…

【机器学习】视觉基础模型的三维意识:前沿探索与局限

视觉基础模型的三维意识&#xff1a;前沿探索与局限 一、引言二、视觉基础模型的三维意识三、当前模型的局限性四、实验与结果五、总结与展望 大规模预训练的进展已经产生了具有强大能力的视觉基础模型。最近的模型不仅可以推广到任意图像的训练任务&#xff0c;而且它们的中间…

跨境电商日报:虾皮开设新物流中心;Tk Shop菲律宾调整佣金费率

2024年5月7日跨境电商日报目录&#xff1a; 1.Shopee开设新物流中心&#xff1b; 2.TikTok Shop菲律宾站调整佣金费率&#xff1b; 3.野莓海外仓卖家可以销售9公斤以上商品&#xff1b; 4.亚马逊一季度净销售额同比增长13%&#xff1b; 5.巴西对华二氧化钛启动反倾销调查 …

AI原生实践:测试用例创作探索

测试用例作为质量保障的核心&#xff0c;影响着研发-测试-发布-上线的全过程&#xff0c;如单元测试用例、手工测试用例、接口自动化用例、UI 自动化用例等&#xff0c;但用例撰写的高成本尤其是自动化用例&#xff0c;导致了用例的可持续积累、更新和迭代受到非常大制约。长久…

如何利用工作流自定义一个AI智能体

选择平台 目前已经有不少大模型平台都提供自定义智能体的功能&#xff0c;比如 百度的文心 https://agents.baidu.com/ 阿里的百炼平台 https://bailian.console.aliyun.com/。 今天再来介绍一个平台扣子&#xff08;https://www.coze.cn/&#xff09;&#xff0c;扣子是…