Jenkins在Docker环境下构建Docker镜像并推送至仓库
需积分: 0 53 浏览量
更新于2024-08-05
收藏 608KB PDF 举报
"jenkins-docker环境构建镜像上传仓库1"
本文主要介绍如何在 Jenkins 环境中,结合 Docker,实现自动化构建镜像并将其上传至私有仓库(如 Harbor)。首先,由于 Jenkins 本身运行在 Docker 容器中,无法直接执行 Docker 操作,因此需要借助 SSH 将构建的 Jar 包和 Dockerfile 文件传输到一台具有 Docker 环境的宿主机上,然后在该宿主机上执行构建和推送镜像的脚本。
1. **Jenkins 配置**:
Jenkins 需要配置全局的 SSH 配置,以便能够通过账号密码登录目标服务器。这可以通过 Jenkins 的系统管理界面完成,选择“系统配置”->“Publish over SSH”。
2. **用户权限设置**:
在目标服务器上,非 root 用户需要能够执行 Docker 命令。为此,新创建的用户或者已有用户需要加入到 `docker` 用户组,这样该用户就有权限执行 Docker 相关的操作。例如,可以使用 `useradd` 或 `usermod` 命令来设置。
3. **创建 SSH 连接**:
在 Jenkins 的 Publish over SSH 部分配置中,添加新服务器的信息,包括 IP 地址、用户名、密码或密钥等,确保 Jenkins 可以成功连接到目标服务器。
4. **目标服务器准备**:
在目标服务器上,创建一个工作目录,例如 `/home/xiaogj/mall/mall-pms`,用于存放构建所需的 Jar 包和 Dockerfile。同时,编写一个构建脚本(如 `docker-build.sh`),该脚本包含了构建和推送镜像的逻辑。
5. **构建脚本详解**:
- 脚本需要检查 Docker 是否已安装,并且当前服务器是否已经登录到私有仓库(如 Harbor),因为 `docker push` 命令需要这个前提。
- 脚本接收两个参数,分别是服务的 Jar 名称和镜像版本号。
- 使用这些参数,脚本可以构造出镜像的完整标识(如 `$registry_name/$service_name:$image_tag`)。
- 脚本执行 `docker build` 命令来构建镜像,这将基于 Dockerfile 和 Jar 包生成新的 Docker 镜像。
- 最后,如果构建成功,脚本会执行 `docker push` 将镜像推送到私有仓库。
6. **执行流程**:
在 Jenkins 的构建步骤中,触发 SSH 调用这个脚本,传入服务名和版本号作为参数,然后 Jenkins 将自动执行整个流程,包括传输文件、构建镜像和推送镜像。
通过这种方式,你可以实现一个自动化、可重复的 CI/CD 流程,使得每次代码更新后,Jenkins 都能自动构建最新的服务镜像并发布到私有仓库,极大地提高了软件的迭代效率和部署的可靠性。在 Spring Cloud 应用中,这种自动化流程尤其重要,因为它允许快速地测试和部署微服务应用的新版本。
3060 浏览量
4784 浏览量
286 浏览量
227 浏览量
174 浏览量
点击了解资源详情
2024-12-27 上传
196 浏览量
158 浏览量

琉璃纱
- 粉丝: 22
最新资源
- Juicy-Potato:Windows本地权限提升工具新秀
- Matlab实现有限差分声波方程正演程序
- SQL Server高可用Alwayson集群搭建教程
- Simulink Stateflow应用实例教程
- Android平台四则运算计算器简易实现
- ForgeRock身份验证节点:捕获URL参数到共享状态属性
- 基于SpringMVC3+Spring3+Mybatis3+easyui的家庭财务管理解决方案
- 银行专用大华监控视频播放器2.0
- PDRatingView:提升Xamarin.iOS用户体验的评分组件
- 嵌入式学习必备:Linux菜鸟入门指南
- 全面的lit文件格式转换解决方案
- 聊天留言网站HTML源码教程及多功能项目资源
- 爱普生ME-10打印机清理软件高效操作指南
- HackerRank问题解决方案集锦
- 华南理工数值分析实验3:计算方法实践指南
- Xamarin.Forms新手指南:Prism框架实操教程