云计算核心技术Docker教程:将标记的版本推送到 Docker Hub

2022-11-17

之前,我们学习了如何为 Docker 项目设置 GitHub Actions 工作流,如何通过设置具有构建缓存的构建器来优化工作流。现在让我们看看如何进一步改进它。我们可以通过添加标记版本对所有提交到 master 的行为不同的功能来做到这一点。这意味着,只推送特定版本,而不是每次提交更新 Docker Hub 上的最新版本。

您可以考虑使用这种方法将提交转到本地注册表,然后在夜间测试中使用。通过这样做,您可以始终测试最新版本,同时保留标记版本以发布到 Docker Hub。

这包括两个步骤:

修改 GitHub 工作流以仅将带有特定标签的提交推送到 Docker Hub

设置 GitHub 操作文件以将最新提交作为图像存储在 GitHub 注册表中

首先,让我们修改现有的 GitHub 工作流程,仅在有特定标签时才推送到 Hub。例如:

on:

push:

tags:

– “v*.*.*”

这确保了主 CI 仅在我们使用V.n.n.n.Lets test this标记我们的提交时才会触发。例如,运行以下命令:

git tag -a v1.0.2

git push origin v1.0.2

现在,转到 GitHub 并检查您的操作

现在,让我们设置第二个 GitHub 操作文件,将我们最新的提交作为图像存储在 GitHub 注册表中。您可能希望这样做:

1.运行您的夜间测试或重复测试,或

2.与同事分享正在进行的工作镜像。

让我们克隆我们之前的 GitHub 操作,并为所有推送添加回我们之前的逻辑。这意味着我们有两个工作流文件,我们之前的一个和我们现在将处理的新的。接下来,将您的 Docker Hub 登录名更改为 GitHub 容器注册表登录名:

请记住更改图像的标记方式。以下示例将“最新”作为唯一标记。但是,如果您愿意,您可以为此添加任何逻辑:

tags: ghcr.io/${{ github.repository_owner }}/simplewhale:latest

现在,我们将有两种不同的流程:一种用于我们对 master 的更改,另一种用于我们的拉取请求。接下来,我们需要修改我们之前的内容,以确保我们将 PR 推送到 GitHub 注册表而不是 Docker Hub。

您好!请登录

点击取消回复