为你的 Python 应用配置 CI/CD

前提条件

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

概述

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

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

第一步:创建仓库

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

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

  2. 打开仓库的设置,然后前往密钥和变量 (Secrets and variables) > 操作 (Actions)

  3. 创建一个新的仓库变量 (Repository variable),名称为 DOCKER_USERNAME,值为你的 Docker ID。

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

  5. 将此 PAT 作为仓库密钥 (Repository secret) 添加到你的 GitHub 仓库中,名称为 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。

总结

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

相关信息

下一步

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

页面选项