Docker+Jenkins一键自动化部署、超简单~

2023/11/30 9:31:14

一、安装Docker

很简单,一步步执行即可。

1、卸载旧版本(有些系统可能会自带)

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine  		

2、安装yum-utils包

yum install -y yum-utils

3、设置镜像仓库

yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4、安装docker

#docker-ce表示社区版 ee表示企业版 ,这里我们安装社区版

yum install docker-ce docker-ce-cli containerd.io

5、启动Docker

systemctl start docker

最后通过docker version 查看docker版本信息,看的到说明操作成功了。

二、安装Jenkins

Jenkins官网:https://www.jenkins.io/zh/

1、安装Jenkins

有了Docker之后,安装一切都是一条命令的事儿~

docker run --name jenkins -u root --rm -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean

注意:如果服务器8080端口被占用了,可以选择换个端口

然后我们访问一下Jenkins:http:${自己部署Jenkins的服务器的地址}:8080,可能需要等待几分钟
在这里插入图片描述
然后,我们就可以看到Jenkins了,现在需要对Jenkins进行解锁。

2、解锁Jenkins

可以通过docker ps 查看到Jenkins的容器Id

# 进入Jenkins
docker exec -it ${容器ID} /bin/bash

#查看密码
cat /var/jenkins_home/secrets/initialAdminPassword

在这里插入图片描述
我们将密码输入到刚刚访问的Jenkins页面,点击继续后可能要等待几分钟。

3、安装插件并创建管理账户

选择第一项“安装推荐插件”即可
在这里插入图片描述
创建管理账户,这个账户一定要自己记得哦~
在这里插入图片描述
于是,我们都设置完后就可以登录进Jenkins了。
在这里插入图片描述

三、Jenkins系统配置

1、安装插件

进入【首页】–【系统管理】–【插件管理】–【可选插件】。搜索以下需要安装的插件,点击安装即可。
在这里插入图片描述
一共需要安装三个插件,步骤都一样

  • 安装 Maven Integration
  • 安装 Publish Over SSH(如果不需要远程推送,不用安装)
  • 如果使用 Gitee 码云,安装插件Gitee(这里我们使用gitee)

2、配置maven

进入【首页】–【系统管理】–【全局工具配置】,拉到页面最下方 maven–maven 安装。
在这里插入图片描述

四、创建任务

1、新建任务

回到首页点击新建任务,输入一个任务名称,然后点击构建一个自由风格的软件项目
在这里插入图片描述

2、源码管理和添加凭证

首先我们在gitee中拿到仓库的地址
在这里插入图片描述
在这里插入图片描述
接下来我们添加凭证 先点击添加
在这里插入图片描述
在这里插入图片描述

3、构建触发器

在这里插入图片描述

这里只需要输入一条命令,这里只是输入一条命令看是否能成功而已,之后还会添加命令让项目跑起来

clean install -Dmaven.test.skip=true

最后点击保存

五、测试

1、构建

在这里插入图片描述

2、查看日志

有时候可能会构建失败,我们可以查看日志 知道出错的原因。
在这里插入图片描述
点击后再点击查看控制台
在这里插入图片描述

3、查看构建完后的项目位置

cd /var/jenkins_home/workspace
ls

在这里插入图片描述
即可看到打完的jar包。

六、运行项目

我们运行项目的步骤是,通过DockerFile构建docker镜像,然后在执行镜像即可。

1、DockerFile编写

在SpringBoot项目根目录下创建一个名为DockerFile(没有后缀)的文件。

FROM openjdk:8
ADD target/one-demo-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 6379
ENTRYPOINT java -jar /app.jar

在这里插入图片描述

这里需要懂点Docker的知识,不懂也没关系,照着做就行。

2、修改Jenkins的任务配置

点击之前创建好的任务
在这里插入图片描述
再点击配置
在这里插入图片描述
再回到之前配置触发器的地方
在这里插入图片描述
添加命令如下:

cd /var/jenkins_home/workspace/one-demo
docker stop one-demo || true
docker rm one-demo || true
docker rmi one-demo || true
docker build -t one-demo .
docker run -d -p 6379:6379 --name one-demo one-demo:latest

备注:

  • 添加“ ||true ”是表示如果命令执行失败也会继续执行。为的是防止第一次执行时one-demo不存在而报错 使命令无法继续执行下去。
  • 另外用6379端口是因为我阿里云的安全组目前只开了8080端口和6379端口,然后阿里云帐号又用的是别人的号,我这边登录不了。所以暂时没法开放其他端口,所以只能用了和redis相同的6379端口,哈哈。

七、验证

先使用docker ps看自己构建的镜像是否跑起来了。
在这里插入图片描述
然后我们的SpringBoot项目中有一个测试接口
在这里插入图片描述
我可以在浏览器中访问一下这个接口、完美运行。
在这里插入图片描述

这样,我们以后本地的代码修改后只需要提交至git,然后到Jenkins中点击构建即可重新部署项目。非常方便有木有!!!

八、后记

恭喜你,完结撒花,就是这么简单。
生活明朗,万物可爱,人间值得,未来可期!!!


http://www.jnnr.cn/a/126885.html

相关文章

Visual Studio Code+drawio扩展插件的安装和使用,免费的软件构图神器

目录 1.下载vscdoe神器 2.安装 3.下载扩展插件drawio 4.drawio的使用 1.下载vscdoe神器 官网下载最新版 Visual Studio Code - Code Editing. Redefined 2.安装 双击安装即可 3.下载扩展插件drawio 点击扩展 搜索框中输入 “drawio” 选择drawio扩展插件 点击install…

第十四届蓝桥杯校内模拟赛第一期——Python

第十四届蓝桥杯校内模拟赛第一期——Python 文章目录第十四届蓝桥杯校内模拟赛第一期——Python1.二进制位数问题描述参考答案扩展2. 晨跑问题描述参考答案扩展3. 调和级数问题描述参考答案4. 山谷问题描述参考答案5. 最小矩阵问题描述参考答案6. 核酸日期问题描述输入格式输出…

TCP四次挥手会经历这么多状态

TCP三次握手 中讲述了序列号和建立连接,这一篇来说说释放连接。 标志位 TCP首部中在属性标志位,和建立连接、释放连接有关,位于保留和窗口字段中间,其中三个标识与断开连接有关。 ACK: acknowledgment(确认&#xf…

向毕业妥协系列之机器学习笔记:决策树(一)

目录 一.决策树模型 二.学习过程 三.纯度(熵) 四.选择拆分信息增益 一.决策树模型 现在以识别猫为例,有三个特征,分别是耳朵,脸和胡须,然后每个特征都有两种输出(等价于二元分类&#xff0…

算法——哈希表篇

1、哈希表理论基础 哈希表 哈希表是根据关键码的值而直接进行访问的数据结构。哈希表英文名称为hash table又称散列表。 其实数组就是一张哈希表。哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素,如下图所示: 那么哈希…

C#重启 --- 枚举

第一部分 --- 枚举 枚举类型的本质其实就是在给整型数据加标签,当编译器遇到枚举类型标签的时候,编译器会自动获取标签对应的整型数据(默认从0开始由上往下递增) 枚举类型的使用方法: 1.枚举类型的类型名是由我们自己…

【JavaSE】面向对象三大特性之多态

文章目录多态的概念向上转型重写之动态绑定与重载之静态绑定重写与重载的区别重写的注意事项总结不安全的向下转型多态的优点和注意事项优点缺点和注意事项多态的概念 多态可以理解为一个对象在某些时刻可以代表不同的对象,指的是对象的多种形态。所以在某些时刻&a…

电脑上给照片调色LrC2022中文

Lightroom Classic 提供了展现照片最佳效果所需的所有桌面编辑工具。增强色彩,使暗淡的镜头充满活力,去除分散注意力的物体,并拉直倾斜的镜头。轻松整理桌面上的所有照片,并以多种方式分享。强大的新遮罩工具可让您进行更精确的调…

【HTML实战】把专属于她的爱心代码放在自己的网站上是一种什么体验?

一、 写在前面的话 看多了李洵的炫酷爱心,今天来点不一样的爱心代码。需要李洵的炫酷爱心代码请看我的上一篇文章。 最近随着电视剧《点燃我温暖你》的火热播出,剧中帅气学霸李洵的炫酷爱心代码也迅速火出了圈,作为一个喜欢动手实践的我来说…

【数据结构】查找— —树表的查找(二叉排序树、平衡二叉树)

查找之二:树表1 二叉排序树(Binary Sort Tree,BST)1.1 BST的定义1.2 BST的查找1.3 BST的插入1.4 BST的构造1.5 BST的删除1.6 BST的查找效率2 平衡二叉树(AVL)2.1 AVL的定义2.2 AVL的插入1 二叉排序树(Binary Sort Tree,BST) 1.1 BST的定义 …

filter()方法

1.定义 filter()创建一个新的叔祖,新数组中的元素是通过检查指定叔祖中符合条件的所有元素。 2.语法 array.filter(function(currentValue,index,arr), thisValue);3.注意事项 1)filter()不会对空数组进行检测; 2)filter()不会改…

jenkins2.289.1版本远程命令执行漏洞

介绍 在网络安全行业中,有一种方法可以识别、定义和编目公开披露的漏洞。这种类型的标识称为CVE,代表常见漏洞和披露。 分析后,为每个漏洞分配一个严重等级,称为 CVSS 分数,范围从 0 到 10,其中 0 表示信…

升级你的MySQL吧,感受下8.0.30 or Higher新特性

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验 一位上进心十足的【大数据领域博主】!😜&#x1f61…

基于51单片机LCD声光音乐盒

资料编号:120 下面是相关功能视频演示: 120-基于51单片机LCD声光音乐盒(原理图源程序仿真论文)本设计采用51单片机做为主控制器 主要功能:单片机内置8首歌曲,按键可以上一曲,下一曲&#xff0…

UTF-8 和 Unicode 编码

在这里采用python语言 1. UTF-8 编码与解码 编码 &#xff1a; str.decode() "我".encode() 输出&#xff1a; 文档&#xff1a; 函数声明&#xff1a;encode(self, /, encodingutf-8, errorsstrict)函数返回&#xff1a;<class bytes> 字节类型解码错误&…

王瑞平:挺和合国际收《火火的情怀》建交朱之文高安孟文豪谷传民

最近一段时间&#xff0c;大衣哥再一次霸屏网络&#xff0c;起因就是他的前好友谷传民&#xff0c;一纸诉状把他告上了法庭。谷传民作为大衣哥的前好友&#xff0c;之所以把他告上法庭&#xff0c;是因为《火火的情怀》这首歌曲的版权归属。 当年大衣哥刚成名的时候&#xff0c…

mybatis-plus代码生成工具

mybatis-plus版本升级尝试遇到的问题 若遇到高版本&#xff1a;【全局覆盖已有文件的配置已失效&#xff0c;已迁移到策略配置中】or【覆盖已有文件&#xff08;已迁移到策略配置中&#xff0c;3.5.4版本会删除此方法&#xff09;】这句话&#xff0c;可参考文章中解决办法 参考…

C++11列表初始化+右值引用+类的新功能

索引一. 列表初始化(1). 使用{}进行初始化的原理分析(2). Initializer_list的源码定义&#xff08;vs2019&#xff09;(3). 模拟实现initializer_list实现vector(4).关键字decltype二.右值引用(1).左值与右值a.左值引用与右值引用的比较&#xff08;2&#xff09;右值引用使用场…

java毕业设计家庭饮用水监测系统(附源码、数据库)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven Vue 等等组成&#xff0c;B/…

图像运算和图像增强八

图像运算和图像增强八 图像平滑之中值滤波、双边滤波 &#xff08;非线性滤波&#xff09; &#xff08;1&#xff09;中值滤波 中值滤波通过计算每一个像素点某邻域范围内所有像素点灰度值的中值&#xff0c;来替换该像素点的灰度值&#xff0c;从而让周围的像素值更接近真…
最新文章