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

Ubuntu 框架使用 Docker 部署 Jenkins 详细教程

Ubuntu 框架使用 Docker 部署 Jenkins 详细教程

Jenkins 是一款开源的自动化服务器工具,基于 Java 开发,用于实现持续集成(CI)和持续交付(CD),广泛应用于软件开发领域。其核心价值在于通过自动化构建、测试和部署流程,帮助开发团队提高效率、提升软件质量,并促进团队协作。

核心功能与特点

  1. 持续集成(CI)
    • 自动触发构建:Jenkins 可根据代码仓库(如 Git、SVN)的提交事件或预定义时间表,自动拉取最新代码并执行构建。
    • 早期问题发现:通过频繁构建和自动化测试,快速定位代码缺陷,降低修复成本。
    • 系统健康检查:持续监控代码质量,减少发布风险。
  2. 持续交付(CD)
    • 自动化部署:将通过测试的代码自动部署到预生产环境,支持更广泛的验证。
    • 缩短发布周期:与配置管理工具(如 Ansible、Chef)集成,实现快速、可靠的部署流程。
  3. 分布式构建
    • 并行处理:支持多节点并行构建,显著提升构建速度,尤其适用于大型项目。
    • 资源优化:合理分配计算资源,避免单点瓶颈。
  4. 插件生态系统
    • 功能扩展:拥有超过 1,800 个插件,覆盖版本控制(Git、SVN)、构建工具(Maven、Gradle)、测试框架(JUnit、Selenium)、部署工具(Docker、Kubernetes)等。
    • 定制化需求:用户可根据项目需求选择插件,或开发自定义插件。
  5. 可视化界面与操作
    • 直观管理:提供 Web 界面,支持任务配置、构建历史查看、状态监控等。
    • 脚本支持:兼容 Groovy、Shell 等脚本语言,满足复杂自动化需求。
  6. 消息通知与报告
    • 实时反馈:通过 RSS、Email 通知构建结果,生成 JUnit/TestNG 测试报告。
    • 数据可视化:以图表形式展示构建趋势和稳定性,辅助决策。

应用场景

  1. Web/移动应用开发:自动化构建、测试和部署,确保快速迭代。
  2. 嵌入式系统:管理硬件相关代码的持续集成,提升开发效率。
  3. DevOps 实践:作为核心工具,连接开发、测试和运维环节,实现高效协作。

优势与价值

  1. 开源免费:降低企业成本,支持社区驱动的功能迭代。
  2. 跨平台支持:兼容 Windows、Linux、macOS 等操作系统。
  3. 易用性与灵活性:提供多种安装方式(如 WAR 包、Docker 容器),支持快速部署。
  4. 社区支持:庞大用户社区提供技术支持、经验分享和插件共享。

典型工作流程

  1. 代码提交:开发者将代码推送至 Git 仓库。
  2. 自动触发:Jenkins 检测到变更后,拉取代码并执行构建。
  3. 自动化测试:运行单元测试、集成测试,生成测试报告。
  4. 部署验证:将通过测试的代码部署至预生产环境,进行进一步验证。
  5. 反馈与修复:根据测试结果反馈问题,开发者快速修复并重新提交。

常见问题与解决方案

  1. 端口冲突:修改 Jenkins 配置文件中的端口号。
  2. 内存不足:增加 JVM 内存或优化系统资源。
  3. 构建失败:检查日志,定位代码编译错误或测试用例问题。
  4. 权限问题:配置 SSH 密钥或调整服务用户权限。
  5. 插件冲突:检查插件版本兼容性,按规范安装/升级。

总结

Jenkins 通过自动化构建、测试和部署流程,结合持续集成和持续交付的最佳实践,成为 DevOps 领域的关键工具。它不仅提升了软件交付速度和质量,还促进了团队协作和持续改进的文化。对于追求高效开发和稳定交付的团队而言,Jenkins 是一个不可或缺的选择。

一、环境准备

点击安装 Docker

二、创建 Jenkins 工作目录

mkdir -p ~/jenkins && cd ~/jenkins  # 创建项目目录
mkdir jenkins_home                  # 创建 Jenkins Home 目录(将挂载为 /var/jenkins_home)
chown -R 1000:1000 jenkins_home     # 设置权限(Jenkins 容器默认用户为 jenkins,UID=1000)

三、编写 docker-compose.yml 文件

nano docker-compose.yml

粘贴以下内容:

version: '3.8'
services:jenkins:image: jenkins/jenkins:lts  # 使用长期支持版本container_name: jenkinsports:- "8080:8080"    # Web 访问端口- "50000:50000"  # 用于 Jenkins Agent 通信volumes:- ./jenkins_home:/var/jenkins_home          # 持久化 Jenkins 数据- /var/run/docker.sock:/var/run/docker.sock # 允许 Jenkins 调用宿主机 Docker- /usr/bin/docker:/usr/bin/docker           # 挂载 Docker CLI(可选)restart: unless-stoppedprivileged: true  # 启用特权模式(构建 Docker 镜像需要)network_mode: bridgeenvironment:JAVA_OPTS: "-Djenkins.install.runSetupWizard=true"user: "1000:1000"  # 匹配宿主机 jenkins_home 权限

说明

  • jenkins/jenkins:lts:官方 LTS 镜像,稳定可靠
  • 挂载 docker.sock:允许 Jenkins 在容器内构建和推送 Docker 镜像
  • restart: unless-stopped:服务器重启后自动启动
  • user: 1000:1000:避免权限问题

 四、启动 Jenkins 容器

docker compose up -d     # 启动服务

五、初始化 Jenkins

  • 打开浏览器访问:http://<你的服务器IP>:8080

  • 获取初始管理员密码:

docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
  • 粘贴密码,进入设置向导。

  • 选择插件

    • 推荐选择 “Install suggested plugins”(安装推荐插件)
    • 常见插件会自动安装:Git、Pipeline、SSH、Docker Pipeline 等
  • 创建第一个管理员用户(建议记录用户名和密码)

  • 设置 Jenkins URL(如 http://ci.yourcompany.comhttp://<IP>:8080

  • 完成安装。

七、常见问题排查

问题解决方案
容器启动失败检查目录权限:chown -R 1000:1000 jenkins_home
无法调用 Docker确认 /var/run/docker.sock 已挂载,且用户在 docker 组
插件安装慢更换为清华源
构建报错权限问题在 docker-compose.yml 中添加 privileged: true

 八、后续扩展建议

  • 集成 GitLab/GitHub Webhook:实现代码提交自动触发构建
  • 使用 Pipeline as Code:通过 Jenkinsfile 管理 CI/CD 流程
  • 对接 Kubernetes:使用 Kubernetes Plugin 动态创建构建节点
  • 迁移到 Helm + K8s:适用于大规模集群管理

通过以上步骤,一个稳定、安全、可维护的企业级 Jenkins CI/CD 平台已成功部署。它不仅为团队提供了自动化的构建与交付能力,也为持续集成文化的落地奠定了坚实基础。自动化之路从此启程,让每一次代码变更都高效、可靠、可追溯。

http://www.jsqmd.com/news/46546/

相关文章:

  • function sql的错误处理方法
  • function sql的示例代码有哪些
  • 【CI130x 离在线】 C++一个类中调用另一个类的方法
  • ERP/MES与QMS的协同价值:为什么企业需要专业质量管理系统的深度解析
  • PostgreSQL技术大讲堂 - 第111讲:浅谈向量数据库pgvector的使用
  • 人大金仓kingbase数据库大小写敏感设置
  • 详细介绍:数据结构八大排序:堆排序-从二叉树到堆排序实现
  • 2025年11月最新推荐!云南旅游旅行社口碑排行榜权威发布,帮你选靠谱服务商避坑指南
  • 大企业数字化项目失败困局与破局之道
  • 2025年11月新推荐!云南旅游旅行社口碑排行榜,权威榜单助选靠谱服务商
  • 2025 年 11 月实木定制地板厂家推荐排行榜,纯实木地板,原木地板,定制木地板,多层实木地板,环保实木地板公司推荐
  • 评估质量管理软件(QMS)的试金石——试用、试用、还是试用!
  • 2025 年 11 月机床厂家推荐排行榜,数控机床,智能数控机床,双头对接机床,6150机床,线轨机床,硬轨机床,重型机床公司推荐
  • 2025 年 11 月硬轨机床厂家推荐排行榜:高刚性硬轨机床,重切削硬轨机床,精密硬轨机床,数控硬轨机床公司推荐
  • 重构lazarus时出现Error: linker: pipe: No such file or directory的解决方法
  • function sql的版本兼容性如何
  • Java 分哪些版本 都有什么不同
  • QMS软件评估:从制造企业实践看标准产品的多维评估框架
  • 2025 年 11 月重型机床厂家推荐排行榜,龙门铣床,落地镗铣床,数控立式车床,深孔钻镗床公司推荐,专业制造与高效加工口碑之选
  • 2025AI直播服务公司品质榜TOP5:智能交互技术,高清画质工艺解析
  • 2025年云南短视频制作公司品质榜单TOP5评测:AI协同生产流程,口碑数据拆解
  • 2025 年 11 月 6150 机床厂家推荐排行榜,普通车床,数控车床,精密机床,重型机床公司推荐,实力与口碑双重保障
  • 2025 年 11 月线轨机床厂家推荐排行榜,精密线轨机床,高速线轨机床,数控线轨机床,重型线轨机床公司推荐
  • 2025 年 11 月智能数控机床厂家推荐排行榜,高精度数控机床,多功能数控机床,自动化数控机床,高效数控机床公司推荐
  • 2025 年 11 月实木地热地板厂家推荐排行榜,纯实木地热地板,多层实木地热地板,环保地热地板,锁扣地热地板公司推荐
  • 自指生产力性格,自洽生产关系情调
  • 2025 年 11 月双头对接机床厂家推荐排行榜,双头对接机床,双头对接机床设备,双头对接机床厂家公司推荐
  • 【第7章 I/O编程与异常处理】C语言的“错误处理”与Python异常机制的核心区别
  • 深入理解Linux网络 读书摘要
  • 2025 年 11 月双头对接机床厂家推荐排行榜,双头对接机床,双头对接专用机床,高效双头对接机床公司推荐,精准高效稳定耐用!