前言
在开发实践中,自动化是标配,而基于 Docker 的自动化镜像构建能力快速广受青睐。在实际生产场景中,往往需要将构建好的 Docker 镜像推送到阿里云容器镜像服务以方便管理和使用。本文将详细介绍如何实现基于 Jenkins+Docker 的自动化镜像构建和推送,旨在提高开发效率和操作效率。
动手实践
1. 准备工作
在进行实践前,需要先准备好以下工具和资源:
- Git 用于本地代码管理和版本控制
- Docker 用于构建容器镜像
- Jenkins 用于配置和执行自动化打包构建任务
- 阿里云容器镜像服务,用于存储 Docker 镜像
2. 创建项目
使用 Git 克隆或新建一个前端项目,将代码放到任意目录下,以本文中的“sample-app”项目为例。该项目的代码目录结构如下:
----------- --- --------- --- ------------- --- ------------ --- ----------------- --- ---- - --- ---------- - --- -------- - --- --------- --- -----------------
其中,src
目录下包含了项目的源代码和资源文件,package.json
是项目的依赖管理文件,webpack.config.js
是项目的构建配置文件。
3. 安装 Docker
安装 Docker 参考官方文档:https://docs.docker.com/get-docker/
4. 构建 Docker 镜像
在项目根目录下新建 Dockerfile
文件,用于构建 Docker 镜像:
- -- ------- -- ------ ---- -------------- - ------ --- ---------- ------- ---- - - ------------ - ----------------- ------ --- -- ---- ------------- -- - ------ --- --- ------- - ---------- --- -- ---- - - - -------- --- --- --- ----- - ---------- ------ ---- - ------ --- ------- --------
自动化构建脚本通过 Dockerfile
文件产生 Docker 镜像,其中包含了项目代码、应用依赖和运行环境等信息,并在其中声明了容器内部暴露的端口号和启动容器的命令。
使用 Docker CLI 构建 Docker 镜像,命令行如下:
------ ----- -- ---------- -
其中,-t
参数指定 Docker 镜像名称及标签,.
表示当前目录下的 Dockerfile 文件。
构建成功时,会在本地 Docker 镜像库中产生一张名为 sample-app
的 Docker 镜像,可以使用以下命令查看:
------ ------
5. 配置 Jenkins
在 Jenkins 中创建一个新的 Freestyle 项目,填写项目名称和描述,并在项目配置界面中设置 Git 代码源和构建任务等参数。
Git 代码源配置
在项目配置界面中,选择“源码管理”,填写 Git 仓库地址、分支和认证信息等。
构建任务配置
在项目配置界面中,选择“构建环境”,勾选“删除工作空间”和“用 Docker 构建环境”。
在“构建”选项中添加“Execute shell”任务,进行 Docker 镜像构建和推送操作。
下面是一个示例构建命令:
----------- ---- --- ------ --- - -------- -- - - -- ----------------------------- -- ---- ---- ---- -- ---------------------------------------------------------------------------------- ----------- ---- -- ----------------------------- ---- ----- -- ----------------------------- -- - ------- ------ -- ---- --------------------------- - ------ ----- -------------------------------------- ---------------- ------------------ - -- ------ -- ------ ----- -- ---------- - - -- ------ -- ------ --- ---------- ------------------------------------------------------- - -- ------ ------ ------ ---- -------------------------------------------------------
该构建任务首先安装了 Docker Compose,根据环境变量 DOCKER_REGISTRY
和 DOCKER_IMAGE_NAME
以及项目构建编号动态计算 Docker 镜像的名称,最后将构建好的 Docker 镜像推送到阿里云镜像服务中。
6. 配置环境变量
在 Jenkins 项目配置界面中,选择“构建环境”,在“环境变量”中添加如下配置:
------------------------------ -------------------------------------------- -------------------------------------------- ------------------------------
其中,DOCKER_REGISTRY
为阿里云容器镜像服务实例的地址,DOCKER_REGISTRY_USERNAME
和 DOCKER_REGISTRY_PASSWORD
为阿里云镜像服务的登陆认证信息,DOCKER_IMAGE_NAME
为 Docker 镜像的名称。
在实际操作中,DOCKER_REGISTRY
和 DOCKER_REGISTRY_USERNAME
等敏感信息应该存储在 Jenkins 的“凭据”中,以避免在代码仓库和构建任务中对敏感信息明文存储。
7. 前端项目部署
将 sample-app
构建好的 Docker 镜像推送到阿里云镜像服务后,即可在阿里云的 Kubernetes 集群中部署前端应用。
下面是一个示例的 Kubernetes 配置文件:
----------- ------- ----- ---------- --------- ----- ---------- ---------- ------- ----- --------- - --------- ------------ ---- ---------- --------- --------- ------- ---- ---------- ----- ----------- - ----- ---------- ------ --------------------------------- ---------------- ------ ------ - -------------- --
在 Kubernetes 中,通过创建 Deployment 来管理应用的副本,启动后根据指定的镜像和端口号自动部署容器。
总结
本文详细介绍了如何使用 Jenkins+Docker 完成前端项目的自动化构建和推送,良好的自动化构建能力能够显著提高工作效率和持续交付质量。学习本文所介绍的知识可以促进前端开发者更好地熟悉 Docker 以及应用容器化自动化构建工具,实现更高效的持续交付。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64f6ecfcf6b2d6eab3f7a696