為你的 Node.js 應用程式配置 CI/CD

先決條件

請完成本指南的所有前幾節,從容器化 Node.js 應用程式開始。您必須擁有 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. 建立一個名為 DOCKER_USERNAME 的新 Repository variable,並將其值設定為您的 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 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: prod
              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。

摘要

在本節中,您學習瞭如何為您的 Node.js 應用程式設定 GitHub Actions 工作流。

相關資訊

後續步驟

接下來,瞭解如何在部署之前在 Kubernetes 上本地測試和除錯您的工作負載。