为您的 Python 应用程序配置 CI/CD

先决条件

完成本指南中所有前面的部分,从 容器化 Python 应用程序 开始。您必须拥有 GitHub 帐户和 Docker 帐户才能完成本节。

概述

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

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

步骤一:创建仓库

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

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

  2. 打开仓库的**设置**,然后转到**秘密和变量**>**操作**。

  3. 创建一个名为 DOCKER_USERNAME 的新的**仓库变量**,并将您的 Docker ID 作为值。

  4. 为 Docker Hub 创建一个新的 个人访问令牌 (PAT)。您可以将此令牌命名为 docker-tutorial。确保访问权限包括读写。

  5. 将 PAT 添加到您的 GitHub 仓库中的**仓库秘密**,名称为 DOCKERHUB_TOKEN

  6. 在您机器上的本地仓库中,运行以下命令以将来源更改为您刚刚创建的仓库。确保将 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 上的仓库,然后选择**操作**选项卡。

  2. 选择**自行设置工作流程**。

    这将带您进入一个页面,用于在您的仓库中创建新的 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 自述文件

步骤三:运行工作流程

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

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

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

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

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

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

    如果在该列表中看到新的仓库,则表示 GitHub Actions 已成功将镜像推送到 Docker Hub。

总结

在本节中,您学习了如何为您的 Python 应用程序设置 GitHub Actions 工作流程。

相关信息

下一步

接下来,了解如何在部署之前在 Kubernetes 上本地测试和调试您的工作负载。