为您的 Node.js 应用程序配置 CI/CD
原文:https://docs.docker.com/language/nodejs/configure-ci-cd/
前提条件
完成本指南的所有前面部分,从容器化 Node.js 应用程序开始。您必须拥有一个 GitHub 账户和一个 Docker 账户才能完成本节。
概述
在本节中,您将学习如何设置并使用 GitHub Actions 来构建和测试您的 Docker 镜像,并将其推送到 Docker Hub。您将完成以下步骤:
- 在 GitHub 上创建一个新仓库。
- 定义 GitHub Actions 工作流。
- 运行工作流。
第一步:创建仓库
创建一个 GitHub 仓库,配置 Docker Hub 的密钥,并推送您的源代码。
打开仓库的 设置,并转到 Secrets and variables > Actions。
创建一个名为
DOCKER_USERNAME
的新密钥,并使用您的 Docker ID 作为值。为 Docker Hub 创建一个个人访问令牌(PAT)。您可以将此令牌命名为
node-docker
。确保访问权限包括读取和写入。将 PAT 作为第二个 Repository secrets 添加到您的 GitHub 仓库中,名称为
DOCKERHUB_TOKEN
。在您的本地仓库中运行以下命令更改原始仓库到您刚刚创建的仓库。确保将
your-username
更改为您的 GitHub 用户名和your-repository
为您创建的仓库名称。consolegit remote set-url origin https://github.com/your-username/your-repository.git
运行以下命令来暂存、提交并推送您的本地仓库到 GitHub。
consolegit add -A git commit -m "my commit" git push -u origin main
第二步:设置工作流
为构建、测试以及推送镜像到 Docker Hub 设置您的 GitHub Actions 工作流。
转到您的 GitHub 仓库,然后选择 Actions 标签。
选择 set up a workflow yourself。
这将带您到创建新的 GitHub Actions 工作流文件的页面,在您的仓库中,默认为
.github/workflows/main.yml
。在编辑器窗口中,复制并粘贴以下 YAML 配置。
yamlname: 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)。
第三步:运行工作流
保存工作流文件并运行作业。
选择 Commit changes... 并将更改推送到
main
分支。推送提交后,工作流将自动开始。
转到 Actions 标签。它显示工作流。
选择工作流会显示所有步骤的细分。
当工作流完成后,转到您的 Docker Hub 上的仓库。
如果您在该列表中看到新仓库,这意味着 GitHub Actions 成功地将镜像推送到了 Docker Hub。
总结
在本节中,您学习了如何为您的 Node.js 应用程序设置 GitHub Actions 工作流。
相关信息:
下一步
接下来,学习如何在部署前在 Kubernetes 上本地测试和调试您的工作负载。