Jenkins在Docker环境下构建Docker镜像并推送至仓库
需积分: 0 118 浏览量
更新于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 浏览量
4785 浏览量
286 浏览量
227 浏览量
174 浏览量
点击了解资源详情
2024-12-27 上传
196 浏览量
158 浏览量

琉璃纱
- 粉丝: 22
最新资源
- Service Notification综合应用与学习研究
- 开源实验光线投射引擎:Ray enchanter
- 全面体验无注册码电脑测试软件EverestUltimate
- Arduino源码实现多功能纸张检测系统
- Potrace for Sketch插件:将位图快速转化为矢量图形
- 2022北航操作系统课程全套课件
- 新型Minecraft块文件格式:快速且可扩展的Blocks-master
- 课堂提问语音点名器V1.0:创新教学辅助工具发布
- 掌握Google GTest,助力Protobuf源码构建
- 深入解析IIS使用方法与技巧
- 深入解析Android系统框架与中间件
- 赫尔辛基设计系统草图助手:保持草图文件一致性
- TortoiseSVN1.9.3 中文版安装教程与语言包下载
- 无需arg参数直接暴露GC功能的JavaScript模块
- 16世邦IP网络广播SDK技术解析与应用
- 新版桌面工具实现高效窗口管理与UNICODE支持