为你的 PHP 应用程序配置 CI/CD

先决条件

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

概述

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

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

步骤一:创建仓库

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

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

  2. 打开仓库的Settings,然后转到Secrets and variables > Actions

  3. 创建一个新的Repository variable,命名为DOCKER_USERNAME,并将你的 Docker ID 作为其值。

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

  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. 在你本地机器上的仓库中,运行以下命令将分支重命名为 main。

    $ git branch -M main
    
  8. 运行以下命令暂存 (stage)、提交 (commit) 然后将你的本地仓库推送到 GitHub。

    $ git add -A
    $ git commit -m "my first 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 test
            uses: docker/build-push-action@v6
            with:
              target: test
              load: true
    
          - name: Build and push
            uses: docker/build-push-action@v6
            with:
              platforms: linux/amd64,linux/arm64
              push: true
              target: final
              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。

总结

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

相关信息

后续步骤

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

页面选项