欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

GitHub Actions构建Docker镜像

程序员文章站 2024-01-28 16:06:52
...

GitHub Actions构建Docker镜像

GitHub Actions是为GitHub上的项目添加CI / CD工作流的自动化工具。注意:在本文中,我们将讨论将CI / CD工作流程集成到使用Docker的项目中的各个步骤。在使用docker的项目中,我们将重点介绍GitHub动作配置-Docker的基本知识及其用途不在本文范围之内。

本教程假定您知道docker的工作原理,并有一个使用它的项目。确保您Dockerfile 在项目的根文件夹中。这里使用的示例项目是一个非常基本的项目,只有一个Python文件。完整的代码可以从github仓库中下载。

首先,我们将介绍在项目中配置GitHub操作所需的基本步骤。这对于在任何平台上运行的所有项目都是常见的。

1. 创建项目并添加workflow文件

显而易见的第一步是创建GitHub项目并将Flutter项目与存储库连接。应该能够在拉取请求旁边看到项目的新Actions 选项卡 。

GitHub Actions构建Docker镜像

GitHub为许多最受欢迎的平台提供了预定义的工作流,您还可以在可视化编辑器中自定义或创建全新的工作流。不过,在这个项目中,我们将采用手动方法命令创建YAML文件来使用工作流。

在Pytho项目的根文件夹中,创建一个新文件夹.github并创建子文件夹workflows。这是我们的工作流YAML文件所在的位置。

一个项目可以有多个工作流文件,例如构建,发行等,但是为了简单起见,我们将仅对该项目使用一个文件。main.yml在工作流文件夹中创建一个名为的最终文件:

GitHub Actions构建Docker镜像

2. 编写流水线

现在,我们必须在main.yml文件中添加命令以执行所需的操作。这是的完整代码main.yml.

1 name: Build and Publish Docker
  2 on: [push]
  3 jobs:
  4   build:
  5     runs-on: ubuntu-latest
  6     steps:
  7     - uses: actions/aaa@qq.com
  8     - name: Publish to Docker Repository
  9       uses: elgohr/aaa@qq.com
 10       with:
 11         name: ispeakcode/docker-githubaction
 12         username: ${{ secrets.DOCKER_USERNAME }}
 13         password: ${{ secrets.DOCKER_PASSWORD }}

为了更好地理解,我们将仔细研究每一行及其用法:

line 1:要显示在“actions”选项卡中的工作流的名称。

line 2:当某人将代码推送到我们的仓库时,触发我们的工作流程。

lines 3–6:我们正在定义一项持续进行的工作ubuntu-latest。每个作业都在虚拟环境的新实例中运行。一份工作可以包含一个或多个steps

line 7:这是我们工作流程的第一步。我们使用名为checkout的GitHub Action从存储库中提取源代码该操作将您的存储库签出到$GITHUB_WORKSPACE,以便您的工作流可以访问存储库的内容。

lines 8–9:这里我们使用GitHub动作publish docker它构建一个docker镜像并将其推送到docker hub。

lines 8–9:这里我们定义了推送到docker hub所需的参数:

  • name是您要推送到docker hub的映像或存储库的名称。

  • username registry的登录用户名(docker hub用户名)。

  • password registry 的登录密码(docker hub密码)。


3. 添加秘钥

您可能会想知道:我们不能在yml文件中直接提及用户名和密码,因为这对安全性非常不利。因此,我们将这些凭据添加到我们项目的秘密中。要添加此代码,请转到您的项目的存储库设置/settings/secrets。在“ 秘密”选项卡中,从工作流文件(*DOCKER_USERNAME**DOCKER_PASSWORD*)中添加具有相同名称的秘***,然后粘贴以下值:

GitHub Actions构建Docker镜像

就这样-提交您的代码并推送它。这将触发docker构建并自动推送映像-在几分钟之内,具体取决于您的项目大小。

4. 检查工作流执行和镜像

推送代码后,您可以通过以下步骤检查工作流的执行情况,/actions并通过以下步骤查看图像:https://cloud.docker.com/repository/

GitHub Actions构建Docker镜像

GitHub Actions构建Docker镜像


GitHub Actions构建Docker镜像

GitHub Actions构建Docker镜像