GitHub 操作简介

GitHub Actions 是一个流行的 CI/CD 平台,用于自动化构建、测试和部署管道。 Docker 提供了一组官方 GitHub Actions 供您在工作流程中使用。这些官方动作是可重用、易于使用的组件,用于构建、注释和推送图像。

以下 GitHub 操作可用:

使用 Docker 的操作提供了易于使用的界面,同时仍然允许灵活地自定义构建参数。

例子

如果您正在寻找有关如何使用 Docker GitHub Actions 的示例,请参阅以下部分:

开始使用 GitHub 操作

本教程将引导您完成设置和使用 Docker GitHub Actions 来构建 Docker 映像以及将映像推送到 Docker Hub 的过程。您将完成以下步骤:

  1. 在 GitHub 上创建一个新存储库。
  2. 定义 GitHub Actions 工作流程。
  3. 运行工作流程。

要学习本教程,您需要一个 Docker ID 和一个 GitHub 帐户。

第一步:创建存储库

创建 GitHub 存储库并配置 Docker Hub 密钥。

  1. 使用此模板存储库创建新的 GitHub 存储库 。

    该存储库包含一个简单的 Dockerfile,仅此而已。如果您愿意,可以随意使用另一个包含可用 Dockerfile 的存储库。

  2. 打开存储库设置,然后转到秘密和变量>操作

  3. 创建一个名为的新密钥DOCKERHUB_USERNAME,并将您的 Docker ID 作为值。

  4. 为 Docker Hub创建新的 个人访问令牌 (PAT) 。您可以命名该令牌clockboxci

  5. 将 PAT 添加为 GitHub 存储库中的第二个机密,名称为 DOCKERHUB_TOKEN

创建存储库并配置机密后,您现在就可以采取行动了!

第二步:设置工作流程

设置 GitHub Actions 工作流程以构建映像并将其推送到 Docker Hub。

  1. 转到 GitHub 上的存储库,然后选择“操作”选项卡。

  2. 选择自己设置工作流程

    这将带您进入一个页面,用于在存储库中创建新的 GitHub 操作工作流程文件(.github/workflows/main.yml默认情况下)。

  3. 在编辑器窗口中,复制并粘贴以下 YAML 配置。

    name: ci
    
    on:
      push:
        branches:
          - "main"
    
    jobs:
      build:
        runs-on: ubuntu-latest
    • name:此工作流程的名称。
    • on.push.branches:指定此工作流应在列表中分支的每个推送事件上运行。
    • jobs:创建作业 ID ( build) 并声明作业应运行的机器类型。

有关此处使用的 YAML 语法的更多信息,请参阅 GitHub Actions 的工作流语法

第三步:定义工作流程步骤

现在是要点:运行哪些步骤以及运行它们的顺序。

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v4
      -
        name: Login to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
      -
        name: Build and push
        uses: docker/build-push-action@v5
        with:
          context: .
          file: ./Dockerfile
          push: true
          tags: ${{ secrets.DOCKERHUB_USERNAME }}/clockbox:latest

前面的 YAML 片段包含一系列步骤:

  1. 检查构建机器上的存储库。

  2. 使用Docker 登录操作和您的 Docker Hub 凭据登录 Docker Hub 。

  3. 使用Docker Setup Buildx操作创建 BuildKit 构建器实例 。

  4. 使用Build and push Docker images构建容器映像并将其推送到 Docker Hub 存储库 。

    with键列出了配置步骤的许多输入参数:

    • context构建上下文
    • file:Dockerfile 的文件路径。
    • push:告诉在构建图像后将图像上传到注册表的操作。
    • tags:指定将图像推送到何处的标签。

将这些步骤添加到您的工作流程文件中。完整的工作流程配置应如下所示:

name: ci

on:
  push:
    branches:
      - "main"

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v4
      -
        name: Login to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
      -
        name: Build and push
        uses: docker/build-push-action@v5
        with:
          context: .
          file: ./Dockerfile
          push: true
          tags: ${{ secrets.DOCKERHUB_USERNAME }}/clockbox:latest

运行工作流程

保存工作流程文件并运行作业。

  1. 选择提交更改...并将更改推送到main分支。

    推送提交后,工作流程将自动启动。

  2. 转到“操作”选项卡。它显示工作流程。

    选择工作流程会显示所有步骤的细分。

  3. 工作流程完成后,转到 Docker Hub 上的存储库

    如果您在该列表中看到新的存储库,则意味着 GitHub Actions 已成功将映像推送到 Docker Hub!

下一步

本教程向您展示了如何使用官方 Docker 操作创建简单的 GitHub Actions 工作流程,以构建映像并将其推送到 Docker Hub。

您还可以执行更多操作来自定义工作流程,以更好地满足您的需求。要了解有关一些更高级用例的更多信息,请查看高级示例,例如 构建多平台图像使用缓存存储后端以及如何 配置构建器