news 2026/9/2 13:31:51

Jenkins 环境搭建---基于 Docker

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Jenkins 环境搭建---基于 Docker

每一个开上爱车的人,都曾有一个慢慢攒钱的过程。 每一次查看进度,都是一次小小的激励。微信扫码开始你的购车之路~

前期准备

提前安装jdk、maven、nodeJs(如果需要的话)

创建 jenkins 环境目录,用来当做挂载卷

/data/jenkins/

一:拉取 Jenkins 镜像

docker pull jenkins/jenkins:lts

二:设置 Jenkins挂载目录

mkdir -p ~/jenkins_home sudo chown 1000:1000 ~/jenkins_home

三:启动 Jenkins 容器

docker run -p 80:8080 -p 81:50000 \ --restart always \ -e JAVA_OPTS="-Djava.io.tmpdir=/xxxx/tmp" \ -v /data/jenkins/tmp:/xxxx/tmp \ -v /data/jenkins/data:/var/jenkins_home\ -v /data/jenkins/apache-maven-3.8.8/:/opt/maven/apache-maven-3.8.8 \ -v /data/jenkins/repository:/opt/maven/repository \ -v /data/jenkins/jdk1.8.0_431:/opt/jdk/jdk1.8.0_431 \ -v /data/jenkins/node-v18.18.0-linux-x64:/opt/node/node-v18.18.0-linux-x64 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ -v /etc/localtime:/etc/localtime \ --name jenkins \ -d jenkins/jenkins:lts

1. 端口映射

-p 80:8080 -p 81:50000
  • -p 80:8080:将主机的 80 端口映射到容器的 8080 端口,这通常是 Jenkins 的 Web 界面端口。
  • -p 81:50000:将主机的 81 端口映射到容器的 50000 端口,这是 Jenkins 用于节点通信的端口。

2. 重启策略

--restart always

--restart always:确保容器在崩溃或重启后自动重启。此设置适用于生产环境中的容器,确保容器始终运行。

3. 环境变量

-e JAVA_OPTS="-Djava.io.tmpdir=/xxxx/tmp"

-e JAVA_OPTS="-Djava.io.tmpdir=/xxxx/tmp":设置 Java 启动参数,指定临时文件目录为/xxxx/tmp。这对于自定义 Jenkins 临时文件存储位置很有用。

4. 挂载卷

-v /data/jenkins/tmp:/xxxx/tmp -v /data/jenkins/data:/var/jenkins_home -v /data/jenkins/apache-maven-3.8.8/:/opt/maven/apache-maven-3.8.8 -v /data/jenkins/repository:/opt/maven/repository -v /data/jenkins/jdk1.8.0_431:/opt/jdk/jdk1.8.0_431 -v /data/jenkins/node-v18.18.0-linux-x64:/opt/node/node-v18.18.0-linux-x64 -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /etc/localtime:/etc/localtime
  • -v /data/jenkins/tmp:/xxxx/tmp:将宿主机/data/jenkins/tmp目录挂载到容器中的/xxxx/tmp,用于存储临时文件。
  • -v /data/jenkins/data:/var/jenkins_home:将宿主机 Jenkins 数据存储目录/data/jenkins/data挂载到容器中的 Jenkins 主目录/var/jenkins_home,用于持久化 Jenkins 配置和数据。
  • -v /data/jenkins/apache-maven-3.8.8/:/opt/maven/apache-maven-3.8.8:将 Maven 版本 3.8.8 的目录挂载到容器中,使 Jenkins 使用宿主机上的 Maven。
  • -v /data/jenkins/repository:/opt/maven/repository:将宿主机上的 Maven 本地仓库挂载到容器中的相应路径。
  • -v /data/jenkins/jdk1.8.0_431:/opt/jdk/jdk1.8.0_431:将宿主机上的 JDK 1.8 挂载到容器中,确保 Jenkins 使用正确的 JDK。
  • -v /data/jenkins/node-v18.18.0-linux-x64:/opt/node/node-v18.18.0-linux-x64:将 Node.js 18.x 挂载到容器中,使 Jenkins 可以使用此版本的 Node.js。
  • -v /var/run/docker.sock:/var/run/docker.sock:使容器能够与宿主机上的 Docker 守护进程通信,允许 Jenkins 运行 Docker 容器。
  • -v /usr/bin/docker:/usr/bin/docker:将宿主机的 Docker 二进制文件挂载到容器中,以便 Jenkins 使用宿主机的 Docker 运行命令。
  • -v /etc/localtime:/etc/localtime:同步容器的时间与宿主机的时间。

四:Jenkins 相关配置

1.解锁 Jenkins

首次登录 Jenkins 控制台时,你需要解锁 Jenkins,通常会显示一个页面提示你输入解锁密钥。

  • 步骤:
    • 查找解锁密钥文件,通常文件位于宿主机的/var/jenkins_home/secrets/initialAdminPassword
    • 可以通过以下命令查看密钥:
      cat /data/jenkins/data/secrets/initialAdminPassword

2.安装推荐插件

解锁后,Jenkins 会引导你选择是否安装推荐的插件,建议选择安装推荐插件,它包括许多常用的插件,如 Git、Maven 等。

  • 步骤:
    • 在解锁后页面中选择Install suggested plugins,Jenkins 会自动下载并安装所有推荐插件。

3.创建管理员用户

在安装完插件后,Jenkins 会让你创建一个管理员用户。

  • 步骤:
    • 填写管理员用户名、密码、全名和电子邮件地址。
    • 如果不想创建用户,可以选择Continue as Admin(以管理员身份继续)。

4.配置系统设置

接下来,你可以配置 Jenkins 的一些全局系统设置,包括 JDK、Maven 和 Node.js 等工具的路径。

配置 JDK
  1. 进入 Jenkins 控制台,点击Manage Jenkins(管理 Jenkins)。
  2. 选择Global Tool Configuration(全局工具配置)。
  3. JDK部分,配置你在 Docker 中挂载的 JDK 1.8 路径:
    • JDK name:给 JDK 取个名字,比如jdk1.8
    • JAVA_HOME:填写 JDK 路径,例如/opt/jdk/jdk1.8.0_431
  4. 点击保存。
配置 Maven
  1. Global Tool Configuration页面,找到Maven部分。
  2. 配置你挂载的 Maven 3.8.8 目录:
    • Maven name:可以设为maven3.8.8
    • MAVEN_HOME:填写 Maven 的路径,例如/opt/maven/apache-maven-3.8.8
  3. 点击保存。
配置 Node.js
  1. Global Tool Configuration页面,找到NodeJS部分。
  2. 配置你挂载的 Node.js 版本:
    • Name:可以设为node-v18.18.0
    • NodeJS installation directory:填写 Node.js 路径,例如/opt/node/node-v18.18.0-linux-x64
  3. 点击保存

5.配置 Jenkins 插件

根据你的需求,你可能需要安装一些特定的插件,下面是常见的一些插件配置:

安装常用插件

你可以在Manage Jenkins->Manage Plugins中安装以下插件:

  • Git Plugin:用于 Git 仓库的集成。
  • Docker Plugin:如果你打算在 Jenkins 中运行 Docker 容器。
  • Maven Integration Plugin:用于支持 Maven 构建。
  • NodeJS Plugin:支持 Node.js 构建。

配置 Docker 插件

  1. Manage Jenkins->Configure System中找到Docker配置部分。
  2. Docker Hosts部分,添加 Docker 主机连接配置,通常配置如下:
    • Docker Host URIunix:///var/run/docker.sock(这是你在docker run命令中挂载的路径)。
    • 点击Test Connection测试连接是否成功

6:创建连接Git 凭据,用于拉取代码用

五:创建任务

1:点击 Dashboard 新视图

比如开发环境视图

2:点击 Dashboard 新建任务

新建后端maven任务

3:选择git凭据

4:选择代码url和分支

6:代码构建完成后,执行相关shell

根据每个项目不同,执行不同的命令

比如传统服务直接执行 java -jar 等命令直接启动服务

比如K8S、Docker这种云服务,可写打包镜像、推送镜像到 Docker 仓库、执行k8s相关命令拉取镜像进行容器启动等

然后点击完成

7:构建代码

右键找到刚才新建的任务,即可进行构建

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 13:31:23

【unity shader】误打误撞做出来了一个简单全息投影shader。。。

(提示:只看代码请跳过这里) 情况是这样的。。。在学习一位大佬的全息shader时出了意外 大佬文章链接,作者:晨蓝fk 就算是将代码全部复制过来,也无法复原大佬原文图里的效果。 查了一下资料,可能是因为没有对ComputeScreenPos()函数返回值的结果做齐次除法运算?(该函数…

作者头像 李华
网站建设 2026/9/2 13:30:40

Shell中常用的几种运算,收藏自用

文章目录一、算数运算符1、加法 2、减法 -3、乘法 *4、除法 /5、求余 %6、幂运算7、自增运算 8、自减运算 - -二、算数运算命令1、(())运算,效率高2、let 运算3、expr 使用反引号,运算符必须用空格隔开4、 bc 计算器5、 declare -i三、比较运算四、逻辑运…

作者头像 李华
网站建设 2026/9/2 13:27:45

VHDL实现LDPC比特翻转解码器:从算法原理到FPGA硬件设计

简介:本资源是一套基于比特翻转算法的LDPC码硬件解码器VHDL实现方案,面向通信工程、数字电路设计及FPGA开发领域的初学者与进阶实践者,聚焦低复杂度LDPC解码器的可综合逻辑设计与算法映射。压缩包共9个文件,含8个MATLAB脚本&#…

作者头像 李华
网站建设 2026/9/2 13:27:00

170、51单片机水塔水箱水位加水排水检测报警设计(程序+原理图+PCB源文件+Proteus仿真+参考论文+开题报告+任务书+开发资料+元器件清单等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件方案 二、设计功能 三、实物图 四、原理图 五、PCB图 六、Proteus仿真 七、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码…

作者头像 李华
网站建设 2026/9/2 13:26:51

用友BIP日志与监视全解析:五大模块助力运维排障

当我们日常维护用友BIP(YonBIP)这类大型企业数智化平台时,最怕的不是功能不会用,而是系统出了异常却不知道从哪里入手排查。任务跑失败、业务数据被误改、用户登录异常、系统响应变慢,这些问题如果只靠人工翻文件、看数…

作者头像 李华
网站建设 2026/9/2 13:23:25

Dynamix《Sunset Toybox》MEGA13攻略:双押与侧轨读谱系统练法

之前在 Dynamix 里挑战《Sunset Toybox feat.桃雛なの》的 MEGA13 谱面时,反复卡在双押断连、侧轨漏读和副歌段手忙脚乱这几个环节上。网上的讨论大多集中在分数截图和个别的躲避姿势,缺少一套能从零开始上手的完整思路。所以这篇文章决定把这首歌从背景…

作者头像 李华