GitHub 操作简介
GitHub Actions 是一个流行的 CI/CD 平台,用于自动化构建、测试和部署管道。 Docker 提供了一组官方 GitHub Actions 供您在工作流程中使用。这些官方动作是可重用、易于使用的组件,用于构建、注释和推送图像。
以下 GitHub 操作可用:
- 构建和推送 Docker 镜像:使用 BuildKit 构建和推送 Docker 镜像。
- Docker Login:登录 Docker 注册表。
- Docker Setup Buildx:启动 BuildKit 构建器。
- Docker 元数据操作:从 Git 参考和 GitHub 事件中提取元数据。
- Docker 设置 QEMU: 为多架构构建安装QEMU静态二进制文件。
- Docker Buildx Bake :允许使用Bake进行高级构建。
- Docker Scout:分析 Docker 镜像的安全漏洞。
使用 Docker 的操作提供了易于使用的界面,同时仍然允许灵活地自定义构建参数。
例子
如果您正在寻找有关如何使用 Docker GitHub Actions 的示例,请参阅以下部分:
开始使用 GitHub 操作
本教程将引导您完成设置和使用 Docker GitHub Actions 来构建 Docker 映像以及将映像推送到 Docker Hub 的过程。您将完成以下步骤:
- 在 GitHub 上创建一个新存储库。
- 定义 GitHub Actions 工作流程。
- 运行工作流程。
要学习本教程,您需要一个 Docker ID 和一个 GitHub 帐户。
第一步:创建存储库
创建 GitHub 存储库并配置 Docker Hub 密钥。
使用此模板存储库创建新的 GitHub 存储库 。
该存储库包含一个简单的 Dockerfile,仅此而已。如果您愿意,可以随意使用另一个包含可用 Dockerfile 的存储库。
打开存储库设置,然后转到秘密和变量>操作。
创建一个名为的新密钥
DOCKERHUB_USERNAME
,并将您的 Docker ID 作为值。为 Docker Hub创建新的 个人访问令牌 (PAT) 。您可以命名该令牌
clockboxci
。将 PAT 添加为 GitHub 存储库中的第二个机密,名称为
DOCKERHUB_TOKEN
。
创建存储库并配置机密后,您现在就可以采取行动了!
第二步:设置工作流程
设置 GitHub Actions 工作流程以构建映像并将其推送到 Docker Hub。
转到 GitHub 上的存储库,然后选择“操作”选项卡。
选择自己设置工作流程。
这将带您进入一个页面,用于在存储库中创建新的 GitHub 操作工作流程文件(
.github/workflows/main.yml
默认情况下)。在编辑器窗口中,复制并粘贴以下 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 片段包含一系列步骤:
检查构建机器上的存储库。
使用Docker 登录操作和您的 Docker Hub 凭据登录 Docker Hub 。
使用Docker Setup Buildx操作创建 BuildKit 构建器实例 。
使用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
运行工作流程
保存工作流程文件并运行作业。
选择提交更改...并将更改推送到
main
分支。推送提交后,工作流程将自动启动。
转到“操作”选项卡。它显示工作流程。
选择工作流程会显示所有步骤的细分。
工作流程完成后,转到 Docker Hub 上的存储库。
如果您在该列表中看到新的存储库,则意味着 GitHub Actions 已成功将映像推送到 Docker Hub!
下一步
本教程向您展示了如何使用官方 Docker 操作创建简单的 GitHub Actions 工作流程,以构建映像并将其推送到 Docker Hub。
您还可以执行更多操作来自定义工作流程,以更好地满足您的需求。要了解有关一些更高级用例的更多信息,请查看高级示例,例如 构建多平台图像或 使用缓存存储后端以及如何 配置构建器。