Jenkins在Docker环境下构建Docker镜像并推送至仓库
下载需积分: 0 | PDF格式 | 608KB |
更新于2024-08-05
| 44 浏览量 | 举报
"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 应用中,这种自动化流程尤其重要,因为它允许快速地测试和部署微服务应用的新版本。
相关推荐
![filetype](https://img-home.csdnimg.cn/images/20241231044930.png)
![filetype](https://img-home.csdnimg.cn/images/20241231044901.png)
![filetype](https://img-home.csdnimg.cn/images/20241231044901.png)
![filetype](https://img-home.csdnimg.cn/images/20241231045053.png)
![filetype](https://img-home.csdnimg.cn/images/20241231045053.png)
![filetype](https://img-home.csdnimg.cn/images/20241226111658.png)
![filetype](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![filetype](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![filetype](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/8eb9f370223a450baece929cc58de9df_weixin_35803480.jpg!1)
琉璃纱
- 粉丝: 22
最新资源
- React App入门教程:构建与部署指南
- Angular开发实践:Chess-Cabin项目搭建与部署指南
- 新浪博客PHP在线编辑器更新版:图片上传优化
- profili小工具深度解析:NACA翼型生成与应用
- Java实现的学生管理系统与MySQL数据库整合教程
- React应用开发教程:构建PWA天气应用
- 创建自动现金流量表模板的解决方案
- 高效Matlab端点检测算法例程解析
- 快速构建个性化网站与博客的Netlify CMS教程
- Apache Tomcat v7.0.91:快速可靠的HTTP服务器软件
- Laravel开发中实现文本分析的aylien-model-traits
- Notepad++代码格式化插件安装与使用教程
- OMSA工具:掌握DELL产品信息的关键
- mTensor:Wolfram Engine与C++结合实现符号张量操作
- MATLAB例程:单机械臂鲁棒自适应控制系统设计
- Create React App入门:快速搭建和测试React项目