為您的 .NET 應用程式配置 CI/CD
先決條件
完成本指南的所有前面部分,從容器化 .NET 應用程式開始。您必須擁有 GitHub 賬戶和 Docker 賬戶才能完成此部分。
概述
在本節中,您將學習如何設定和使用 GitHub Actions 來構建和測試您的 Docker 映象,並將其推送到 Docker Hub。您將完成以下步驟:
- 在 GitHub 上建立一個新倉庫。
- 定義 GitHub Actions 工作流程。
- 執行工作流程。
第一步:建立倉庫
建立一個 GitHub 倉庫,配置 Docker Hub 憑據,並推送您的原始碼。
在 GitHub 上建立一個新倉庫。
開啟倉庫的 Settings,然後進入 Secrets and variables > Actions。
建立一個名為
DOCKER_USERNAME的新 Repository variable,並將其值設定為您的 Docker ID。為 Docker Hub 建立一個新的個人訪問令牌 (PAT)。您可以將此令牌命名為 `docker-tutorial`。確保訪問許可權包含“讀取”和“寫入”。
將 PAT 作為 Repository secret 新增到您的 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 上的倉庫,然後選擇 Actions 選項卡。
選擇 set up a workflow yourself。
這會將您帶到一個頁面,您可以在其中建立新的 GitHub Actions 工作流程檔案,預設路徑為
.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: build 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。
第三步:執行工作流程
儲存工作流程檔案並執行作業。
選擇 Commit changes... 並將更改推送到
main分支。推送提交後,工作流程會自動啟動。
轉到 Actions 選項卡。它會顯示工作流程。
選擇工作流程將顯示所有步驟的詳細資訊。
工作流程完成後,請訪問您在Docker Hub 上的倉庫。
如果您在該列表中看到新倉庫,則表示 GitHub Actions 已成功將映象推送到 Docker Hub。
摘要
在本節中,您學習瞭如何為您的應用程式設定 GitHub Actions 工作流。
相關資訊
後續步驟
接下來,瞭解如何在部署之前在 Kubernetes 上本地測試和除錯您的工作負載。