設定 PHP 應用程式的 CI/CD
先決條件
完成本指南的所有先前章節,從 將 PHP 應用程式容器化 開始。您必須擁有 GitHub 帳戶和 Docker 帳戶才能完成此章節。
概觀
在本節中,您將學習如何設定和使用 GitHub Actions 來建置和測試您的 Docker 鏡像,並將其推送至 Docker Hub。您將完成以下步驟
- 在 GitHub 上建立新的儲存庫。
- 定義 GitHub Actions 工作流程。
- 執行工作流程。
步驟一:建立儲存庫
建立 GitHub 儲存庫、設定 Docker Hub 認證,並推送您的原始碼。
在 GitHub 上 建立新的儲存庫。
開啟儲存庫**設定**,然後前往**密鑰和變數** > **動作**。
建立一個名為 `DOCKER_USERNAME` 的新**儲存庫變數**,並將您的 Docker ID 作為值。
為 Docker Hub 建立新的 個人存取權杖 (PAT)。您可以將此權杖命名為 `docker-tutorial`。確保存取權限包含讀取和寫入。
將 PAT 作為**儲存庫密鑰**新增到您的 GitHub 儲存庫中,名稱為 `DOCKERHUB_TOKEN`。
在您機器上的本地儲存庫中,執行以下命令將來源更改為您剛才建立的儲存庫。確保將 `your-username` 更改為您的 GitHub 使用者名稱,並將 `your-repository` 更改為您建立的儲存庫名稱。
$ git remote set-url origin https://github.com/your-username/your-repository.git
在您機器上的本地儲存庫中,執行以下命令將分支重新命名為 main。
$ git branch -M main
執行以下命令來暫存、提交,然後將您的本地儲存庫推送至 GitHub。
$ git add -A $ git commit -m "my first commit" $ git push -u origin main
步驟二:設定工作流程
設定您的 GitHub Actions 工作流程,以建置、測試和推送鏡像至 Docker Hub。
前往 GitHub 上的儲存庫,然後選擇**動作**標籤。
選擇**自行設定工作流程**。
這會帶您到一個頁面,讓您在儲存庫中建立新的 GitHub 動作工作流程檔案,預設位於 `。github/workflows/main.yml` 下。
在編輯器視窗中,複製並貼上以下 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。
步驟三:執行工作流程
儲存工作流程檔案並執行作業。
選擇**提交變更...** 並將變更推送至 `main` 分支。
推送提交後,工作流程會自動啟動。
前往**動作**標籤。它會顯示工作流程。
選擇工作流程會顯示所有步驟的細分。
工作流程完成後,前往 Docker Hub 上的 儲存庫