当前位置: 首页 > news >正文

Linux中部署Jenkins保姆间教程

 本文将以docker的方式,讲述如何部署Jenkins

一、拉取Jenkins镜像

1.1 最新版Jenkins介绍

最新版Jenkins地址:Download and deploy

当前最新版的如下图所示:

1.2 各版本支持的JDK版本

地址如下:Java Support Policy

如果你安装了不受支持的 Java 版本,你的 Jenkins 控制器将无法运行。 

特别注意:此处的JDK版本是Jenkins运行所依赖的版本。比如jenkins/jenkins:2.492.3
不支持在 JDK8 上运行。根据 Jenkins 的官方文档,从 jenkins/jenkins:2.492.3 版本开始,要求至少使用 Java 17 或更新版本来运行。(官方镜像已内置 OpenJDK)。不过,尽管 Jenkins 本身需要 Java 17 或更新版本来运行,但这并不意味着你不能在 Jenkins 中配置 JDK8 来构建项目。你仍然可以在 Jenkins 的全局工具配置中,为构建任务指定 JDK8,而 Jenkins 运行时使用 Java 17 或更高版本。

1.3 拉取jenkins/jenkins:2.492.3 版本的镜像

docker pull jenkins/jenkins:2.492.3

1.4 查看镜像

docker images

二、启动Jenkins容器

2.1 创建挂载目录

mkdir -p docker-jenkins/jenkins_home

2.2 设置权限

chmod -R 777 /docker-jenkins/jenkins_home

2.3启动容器

docker run -d \--name jenkins \--restart=always \-p 8080:8080 \-p 50000:50000 \-v /docker-jenkins/jenkins_home:/var/jenkins_home \-v /etc/localtime:/etc/localtime:ro \jenkins/jenkins:2.492.3

2.4 查看容器

docker ps

三、初始化Jenkins

3.1 查看Jenkins日志,查看临时密码

docker logs xxx

xxx为容器的id 

3.2 访问Jenkins的Web控制台

通过部署机器的8080端口进行访问。访问的过程会很慢等待一下。服务器内存最好大点,内存小的容易启动不起来。

然后输入刚刚获取的临时密码

3.3 安装插件

输入临时密码,稍等后会进行插件页面,选择《安装推荐的插件即可》:

等待一段时间后,插件安装如下(如果过程中出现几个失败先不管):

接下来按照步骤,创建一个用户,然后就可以开始使用Jenkins啦。

3.4 正常使用

如果你顺利完成了上面的步骤,你就可以正常使用Jenkins了。

3.5 汉化(非必选)

进入插件Plugins:

搜索Locale,勾选,点击安装

下载完成后,可以点击勾选空闲时重启jenkins,也可以自己重启:

四、jenckins实现自动打包持续集成

4.1 新建任务

首先点击新建任务

然后输入一个任务名称,选择构建一个自由风格的软件项目

然后可以选择性的写一下描述,并选择源码管理中的Git

然后输入我们的仓库地址,会显示无法连接,此时我们点击添加按钮(用于添加Git账号)

输入用户名和密码后点击添加

然后选择Credentials,并save保存。如果要该分支,请自行修改

保持后,回到Dashboard页面,即可看到项目        

4.2 配置全局Maven

4.2.1 准备maven

这里以上传我们自己的Maven为案例

首先进入Jenkins挂在目录:

cd /docker-jenkins/jenkins_home

其次上传maven:

4.2.2配置Maven

进入系统管理:

选择全局工具配置:

先滑倒最下面,点击《新增Maven》:

然后填写maven的信息(注意:此次要填容器内的地址):

当然在这里,我们也可以选择自动安装啦

接着,我们滑到最顶端,配置Maven的settings 配置文件,配置完点击保存:

(注意要配置容器内的文件路径)

4.3 尝试构建

点击进入对应的项目:

点击立刻构建:

查看控制台输出:

发现没有git tool:

4.4 解决问题

4.4.1 检查是否有Git plugin

相关文章:

  • [mcp-servers] docs | AI客户端-MCP服务器-AI 架构
  • WPF 实现自定义弹窗输入功能
  • 第一章-人工智能概述-深度学习与AI发展(2/36)
  • 星型模式(Star Schema)
  • 代码随想录|图论|05岛屿数量(深搜DFS)
  • 重建与数字子序列匹配的最小数字序列的有效方法
  • element-plus 按钮 展开/隐藏
  • css 颜色与字体
  • Flux.create
  • Mac电脑如何搭建基于java后端的开发的各种工具服务
  • WebSocket 与 HTTP 的区别及 Spring Boot 实战应用
  • FANUC机器人教程:用户坐标系标定及其使用方法
  • Java——注解开发模式下的 Spring IoC/DI 与 Bean 管理实战
  • 机器学习15-规则学习-知识加强
  • 【NLP】自然语言项目设计
  • vllm加载多个Lora部署
  • 数据分享:教育数据集-预测学生辍学风险和学术成功数据集
  • 01【C++ 入门基础】命名空间/域
  • 8、做中学 | 四年级下期 Golang运算符
  • [论文阅读] 人工智能 + 软件工程 | AI 与敏捷开发的破局之路:从挫败到成功的工作坊纪实