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 上本地测试和调试您的工作负载。