Jenkins在Docker环境下构建Docker镜像并推送至仓库
下载需积分: 0 | PDF格式 | 608KB |
更新于2024-08-05
| 59 浏览量 | 举报
"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 应用中,这种自动化流程尤其重要,因为它允许快速地测试和部署微服务应用的新版本。
相关推荐
琉璃纱
- 粉丝: 22
- 资源: 298
最新资源
- star NX-650 打印机说明书
- Simulink在直接扩频通信系统中的应用
- DIV+CSS布局大全
- 考研英语核心词汇.pdf
- 《eclipse基础教程中文版》
- Fundamentals of Digital Television Transmission
- Java+Servlet+API说明文档
- 网上书店需求分析书(很正规的一个模板啊)
- Linux Unicode Programming-CH
- 清华大学2005年第23届挑战杯精品集
- ATM Signalling PROTOCOLS AND PRACTICE
- 高质量C++编程指南
- essential c++英文版
- SQL Sever 2005专业教程(英文版)
- CHS]跟我一起写_Makefile
- Computer Arithmetic