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

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:构建代码

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

相关文章:

  • vscode 配置 Copilot 提示GHE.com连接失败
  • format() 方法的常见用法
  • 解耦的艺术_应用架构中的解耦
  • ima接入deepseek-r1
  • AI客服-接入deepseek大模型到微信(本地部署deepseek集成微信自动收发消息)
  • 常用的性能优化方法和技巧
  • 网站快速收录:利用新闻源的优势
  • centos下使用pyenv管理python版本
  • SOME/IP-SD -- 协议英文原文讲解1
  • 代码随想录day16
  • 【量化科普】Standard Deviation,标准差
  • 《Operating System Concepts》阅读笔记:p50-p61
  • 后端开发-分页游标设计(解决大数据量分页查询时的性能问题)
  • Bio-ORACLE数据分享[decade 2010-2020] [Surface layers]
  • Windows系统安装GPU驱动/CUDA/cuDNN
  • XML XML约束 一、XML约束概述
  • NVIDIA 的 Blackwell 架构:解析 B100、B200 和 GB200
  • 导入大模型产生的字符串的时候碰到的问题
  • Boringssl介绍
  • Java——权限修饰符
  • 十堰响应式网站/如何做网络宣传推广
  • 网站建设总体规划包括/惠东seo公司
  • 最便宜的网站空间/成都网站推广
  • 做网站都需要什么人团/百度pc网页版登录入口
  • 建了个网站百度上会有么/国家免费培训网站
  • 企点网络科技骗局/李飞seo