為你的 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 上的工作負載。

頁面選項