返回

跨入自动化的门槛,用GitHub Actions一键发布Docker镜像

开发工具

前言

对于经常需要交付代码的小伙伴们来说,近年来持续集成和持续交付得到了许多开发者的关注,大家常用的有 Jenkins、Travis CI 等,今天我们就来聊聊GitHub Actions。

GitHub Actions 是一款持续集成(CI)和持续交付(CD)工具,可帮助你自动执行软件项目的构建、测试和部署。它于 2018 年 11 月发布,目前已成为 GitHub 上最受欢迎的 CI/CD 工具之一。

GitHub Actions 的优点包括:

  • 易于使用:GitHub Actions 提供了一个用户友好的界面,即使是新手也可以轻松上手。
  • 可扩展性强:GitHub Actions 提供了多种不同的操作,你可以根据自己的需求自定义构建工作流。
  • 云原生:GitHub Actions 运行在 GitHub 的云平台上,因此你无需管理自己的基础设施。
  • 价格合理:GitHub Actions 提供免费套餐,即使是付费套餐也价格合理。

自动化发布Docker镜像

以下是如何使用 GitHub Actions 自动发布 Docker 镜像的步骤:

  1. 创建一个 GitHub 仓库
  2. 在仓库中创建一个 .github/workflows 目录
  3. .github/workflows 目录中创建一个 YAML 文件,例如 main.yml
  4. 在 YAML 文件中定义你的工作流
  5. 将 YAML 文件推送到 GitHub
  6. GitHub Actions 将自动运行你的工作流

下面是一个使用 Go 语言的示例 YAML 文件:

name: Build and push Docker image

on:
  push:
    branches:
      - main

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up Go
        uses: actions/setup-go@v2
        with:
          go-version: 1.18

      - name: Build Docker image
        run: docker build -t my-image .

      - name: Push Docker image
        run: docker push my-image

这个 YAML 文件定义了一个名为 build-and-push 的工作流,该工作流会在每次将代码推送到 main 分支时自动运行。工作流包含以下步骤:

  • Checkout code:检出代码到本地。
  • Set up Go:设置 Go 环境。
  • Build Docker image:构建 Docker 镜像。
  • Push Docker image:将 Docker 镜像推送到 Docker Hub。

总结

GitHub Actions 是一款功能强大且易于使用的 CI/CD 工具。它可以帮助你自动执行软件项目的构建、测试和部署。如果你正在寻找一种自动化发布 Docker 镜像的方法,那么 GitHub Actions 是一个不错的选择。