使用 Jenkins 执行 Docker Build 的完整指南

在软件开发过程中,持续集成和持续交付(CI/CD)是非常重要的部分。目前大多数项目都采用 Docker 来构建和部署应用。Jenkins 是一个流行的自动化服务器,能帮助我们实现自动化构建。本文将详细介绍如何在 Jenkins 中执行 Docker Build 的流程,以及每一步所需的具体代码。

流程概览

下面是实现 Jenkins 执行 Docker Build 的基本步骤:

步骤 描述
1 在 Jenkins 上安装 Docker 插件
2 创建 Jenkins Pipeline
3 编写 Dockerfile
4 配置 Jenkins Pipeline
5 运行构建
6 查看构建结果

步骤详细说明

步骤 1:在 Jenkins 上安装 Docker 插件

在 Jenkins 中,我们需要确保安装了 Docker 插件,以便支持 Docker 操作。

  1. 登录到 Jenkins。
  2. 点击左侧的“Manage Jenkins”。
  3. 点击“Manage Plugins”。
  4. 在“Available”标签页中,搜索 “Docker”。
  5. 勾选 Docker 插件并点击“Install without restart”。
步骤 2:创建 Jenkins Pipeline

创建一个新的 Jenkins Pipeline 项目:

  1. 回到 Jenkins 首页,点击“New Item”。
  2. 输入项目名称,选择 “Pipeline”,然后点击 “OK”。
步骤 3:编写 Dockerfile

在项目的根目录下,创建一个 Dockerfile 文件,这是构建 Docker 镜像的关键文件。以下是一个简单的示例:

# 使用官方的 Node.js 镜像
FROM node:14

# 设置工作目录
WORKDIR /usr/src/app

# 复制 package.json 文件并运行 npm install
COPY package*.json ./
RUN npm install

# 复制项目代码
COPY . .

# 暴露端口
EXPOSE 8080

# 启动应用
CMD ["node", "app.js"]
步骤 4:配置 Jenkins Pipeline

在 Jenkins 项目中配置 Pipeline 脚本,以下是一个简单的 Pipeline 示例:

pipeline {
    agent any 
    stages {
        stage('Build') {
            steps {
                script {
                    // 创建 Docker 镜像
                    sh 'docker build -t my-app .'
                }
            }
        }
        stage('Run') {
            steps {
                script {
                    // 运行 Docker 镜像
                    sh 'docker run -d -p 8080:8080 my-app'
                }
            }
        }
    }
}

代码解释:

  • pipeline {}: 定义一个 Jenkins Pipeline。
  • agent any: 选择在任何可用的代理节点上运行。
  • stages {}: 定义多个构建阶段。
  • stage('Build') {}: 定义构建阶段。
  • sh 'docker build -t my-app .': 使用 Docker 命令构建镜像,-t my-app 为镜像指定标签,. 表示当前目录。
  • stage('Run') {}: 定义运行阶段。
  • sh 'docker run -d -p 8080:8080 my-app': 运行 Docker 容器,-d 表示后台运行,-p 8080:8080 映射容器端口到主机。
步骤 5:运行构建

保存 Pipeline 配置后,点击“Build Now”按钮开始构建。可以在左侧的构建历史中查看构建进度。

步骤 6:查看构建结果

完成后,可以在 Jenkins 页面上查看构建日志以及结果。

结束语

通过以上步骤,我们简单明了地实现了在 Jenkins 中执行 Docker Build。整个流程旨在帮助你理解并创建自己的 CI/CD 流程,让软件的构建和部署更为自动化。希望这篇文章能帮助你在开发的旅程中走得更远!

以下是相应的饼状图和序列图:

饼状图

pie
    title Jenkins Docker Build 流程
    "安装 Docker 插件": 15
    "创建 Jenkins Pipeline": 15
    "编写 Dockerfile": 20
    "配置 Pipeline": 30
    "运行构建": 10
    "查看结果": 10

序列图

sequenceDiagram
    participant User
    participant Jenkins
    participant Docker

    User->>Jenkins: 登录 Jenkins
    Jenkins->>User: 显示主界面
    User->>Jenkins: 创建新项目
    Jenkins->>User: 等待配置
    User->>Jenkins: 配置 Pipeline
    Jenkins->>User: 保存配置
    User->>Jenkins: 运行构建
    Jenkins->>Docker: build my-app
    Docker->>Jenkins: 返回构建结果
    Jenkins->>User: 显示构建日志

通过实践上述步骤,你将更深入地理解 Jenkins 与 Docker 的集成,帮助你在开发中提高效率。祝你在开发之路上顺利前行!