Skip to content

为您的 Node.js 应用程序配置 CI/CD ​

原文:https://docs.docker.com/language/nodejs/configure-ci-cd/

前提条件 ​

完成本指南的所有前面部分,从容器化 Node.js 应用程序开始。您必须拥有一个 GitHub 账户和一个 Docker 账户才能完成本节。

概述 ​

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

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

第一步:创建仓库 ​

创建一个 GitHub 仓库,配置 Docker Hub 的密钥,并推送您的源代码。

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

  2. 打开仓库的 设置,并转到 Secrets and variables > Actions。

  3. 创建一个名为 DOCKER_USERNAME 的新密钥,并使用您的 Docker ID 作为值。

  4. 为 Docker Hub 创建一个个人访问令牌(PAT)。您可以将此令牌命名为 node-docker。确保访问权限包括读取和写入。

  5. 将 PAT 作为第二个 Repository secrets 添加到您的 GitHub 仓库中,名称为 DOCKERHUB_TOKEN。

  6. 在您的本地仓库中运行以下命令更改原始仓库到您刚刚创建的仓库。确保将 your-username 更改为您的 GitHub 用户名和 your-repository 为您创建的仓库名称。

    console
    git remote set-url origin https://github.com/your-username/your-repository.git
  7. 运行以下命令来暂存、提交并推送您的本地仓库到 GitHub。

    console
    git add -A
    git commit -m "my commit"
    git push -u origin main

第二步:设置工作流 ​

为构建、测试以及推送镜像到 Docker Hub 设置您的 GitHub Actions 工作流。

  1. 转到您的 GitHub 仓库,然后选择 Actions 标签。

  2. 选择 set up a workflow yourself。

    这将带您到创建新的 GitHub Actions 工作流文件的页面,在您的仓库中,默认为 .github/workflows/main.yml。

  3. 在编辑器窗口中,复制并粘贴以下 YAML 配置。

    yaml
    name: ci
    
    on:
      push:
        branches:
          - main
    
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - name: Checkout
            uses: actions/checkout@v4
          - name: Login to Docker Hub
            uses: docker/login-action@v3
            with:
              username: ${{ secrets.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@v5
            with:
              context: .
              target: test
              load: true
          - name: Build and push
            uses: docker/build-push-action@v5
            with:
              context: .
              push: true
              target: prod
              tags: ${{ secrets.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latest

    如果您的 Dockerfile 位于不同的目录,请更新 context 为包含 Dockerfile 的目录路径。

    有关此处使用的 YAML 语法的更多信息,请参见 [GitHub Actions 的工作流语法](https://docs.github.com/en/actions/using-workflows/workflow-syntax

-for-github-actions)。

第三步:运行工作流 ​

保存工作流文件并运行作业。

  1. 选择 Commit changes... 并将更改推送到 main 分支。

    推送提交后,工作流将自动开始。

  2. 转到 Actions 标签。它显示工作流。

    选择工作流会显示所有步骤的细分。

  3. 当工作流完成后,转到您的 Docker Hub 上的仓库。

    如果您在该列表中看到新仓库,这意味着 GitHub Actions 成功地将镜像推送到了 Docker Hub。

总结 ​

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

相关信息:

下一步 ​

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