为你的 C++ 应用配置 CI/CD

前提条件

完成本指南的所有先前章节,从 容器化 C++ 应用 开始。你必须拥有一个 GitHub 账户和一个 Docker 账户才能完成本节。

概览

在本节中,你将学习如何设置和使用 GitHub Actions 来构建和测试你的 Docker 镜像,并将其推送到 Docker Hub。你将完成以下步骤:

  1. 在 GitHub 上创建新的仓库。
  2. 定义 GitHub Actions 工作流程。
  3. 运行工作流程。

第一步:创建仓库

创建一个 GitHub 仓库,配置 Docker Hub 凭据,并推送你的源代码。

  1. 创建新的仓库 在 GitHub 上。

  2. 打开仓库的**设置**,然后转到**Secrets and variables** > **Actions**。

  3. 创建一个新的**仓库变量**,命名为 `DOCKER_USERNAME`,并将其值设置为你的 Docker ID。

  4. 为 Docker Hub 创建新的个人访问令牌 (PAT)。你可以将此令牌命名为 `docker-tutorial`。确保访问权限包含读取和写入。

  5. 在你的 GitHub 仓库中,将 PAT 添加为**仓库机密**,名称为 `DOCKERHUB_TOKEN`。

  6. 在你本地机器上的仓库中,运行以下命令将 origin 更改为你刚刚创建的仓库。请确保将 `your-username` 更改为你的 GitHub 用户名,将 `your-repository` 更改为你创建的仓库名称。

    $ git remote set-url origin https://github.com/your-username/your-repository.git
    
  7. 运行以下命令暂存、提交并推送你的本地仓库到 GitHub。

    $ git add -A
    $ git commit -m "my commit"
    $ git push -u origin main
    

第二步:设置工作流程

设置 GitHub Actions 工作流程,用于构建、测试镜像并将其推送到 Docker Hub。

  1. 前往你在 GitHub 上的仓库,然后选择 **Actions** 选项卡。

  2. 选择 **set up a workflow yourself**(自行设置工作流程)。

    这会将你带到创建新 GitHub Actions 工作流程文件的页面,该文件默认位于你的仓库中的 `.github/workflows/main.yml`。

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

    name: ci
    
    on:
      push:
        branches:
          - main
    
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - name: Login to Docker Hub
            uses: docker/login-action@v3
            with:
              username: ${{ vars.DOCKER_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@v6
            with:
              platforms: linux/amd64,linux/arm64
              push: true
              tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latest

    有关 `docker/build-push-action` 的 YAML 语法的更多信息,请参阅GitHub Action README

第三步:运行工作流程

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

  1. 选择**Commit changes...**(提交更改…)并将更改推送到 `main` 分支。

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

  2. 转到 **Actions** 选项卡。它会显示工作流程。

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

  3. 工作流程完成后,转到你在Docker Hub 上的仓库

    如果你在列表中看到新的仓库,这意味着 GitHub Actions 已成功将镜像推送到 Docker Hub。

总结

在本节中,你学习了如何为你的 C++ 应用设置 GitHub Actions 工作流程。

相关信息

下一步

接下来,学习如何在部署到 Kubernetes 之前,在本地测试和调试你的工作负载。

页面选项