为您的 Java 应用程序配置 CI/CD

先决条件

完成本指南前面的部分,从容器化您的应用程序开始。您必须拥有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 的新仓库变量,并将您的 Docker ID 作为值。

  4. 为 Docker Hub 创建一个新的个人访问令牌 (PAT)。您可以将此令牌命名为 docker-tutorial。确保访问权限包含 Read 和 Write。

  5. 在您的 GitHub 仓库中,将 PAT 添加为仓库机密,名称为 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”(操作)选项卡。项目已有一个名为 maven-build 的工作流程,用于使用 Maven 构建和测试您的 Java 应用程序。如果您愿意,可以选择禁用此工作流程,因为您将在本指南中不使用它。您将创建一个新的替代工作流程来构建、测试和推送您的镜像。

  2. 选择“New workflow”(新建工作流程)。

  3. 选择“set up a workflow yourself”(自行设置工作流程)。

    这将带您进入一个页面,用于在您的仓库中创建新的 GitHub Actions 工作流程文件,默认位置为 .github/workflows/main.yml

  4. 在编辑器窗口中,复制并粘贴以下 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: final
              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。

总结

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

相关信息

下一步

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

页面选项