Docker Hub自动构建 - 标记

时间:2014-08-15 14:22:47

标签: docker dockerhub

在Docker Hub上指定自动构建时,我可以设置一些设置(Type('分支'或'标记'),Name,{ {1}}和Dockerfile Location)。但不幸的是,我没有为那些人找到任何文件。

我认为,当我选择Docker Tag Name'分支'并输入一个Type,这是我使用的GitHub / BitBucket上我的git存储库的分支,Name导致标记被分配给创建的图像。

我玩了一下,发现了一些我不清楚的事情 - 但我希望你能向我解释。

  • 添加多个条目会导致只分配一个标记。我使用了' Branch',' master'和' /'和最新的'作为第一个Docker Tag Name,' v1'在第二个。但只有' v1'用作标记。

  • 使用Docker Tag Name'标记'没有导致不同的结果。我认为如果用这个值标记git commit,这可能只会构建一个图像。这种类型是什么?

我一直在寻找能够分配标签“最新”的标签。对于最新的构建,并使用像旧版本的v1,v2,v3等方案,就像我在本地构建图像时所做的那样。

7 个答案:

答案 0 :(得分:33)

dockerhub上提供了自动化码头图像标记功能!我最近摆弄这个想要分享我的发现,跳过这个线程(希望没关系!)

所以我在dockerhub上有一个带有自动构建链接的公共GitHub仓库。我希望每次推送到:latest分支时都会更新master标记。另外,我希望为我在GitHub上创建的每个版本创建:X:X.Y:X.Y.Z标记(在GitHub上标记为vX.Y.Z)。

以下是构建设置配置如何支持此功能: dockerhub build settings

在文字中,所以复制粘贴更容易:

| Type   | Name                              | Dockerfile Location | Docker Tag Name |
|--------|-----------------------------------|---------------------|-----------------|
| Branch | master                            | /                   | latest          |
| Tag    | /^v([0-9]+)\.([0-9]+)\.([0-9]+)$/ | /                   | {\1}            |
| Tag    | /^v([0-9]+)\.([0-9]+)\.([0-9]+)$/ | /                   | {\1}.{\2}       |
| Tag    | /^v([0-9]+)\.([0-9]+)\.([0-9]+)$/ | /                   | {\1}.{\2}.{\3}  |

希望这有帮助!

答案 1 :(得分:16)

这在2个步骤中非常容易......

步骤1 - 单击Automated Build链接

Automated build link

第2步 - 通过单击蓝色加号按钮将多个自动构建添加到同一个docker repo(大多数人不知道您可以添加多个自动构建)(参见下图)

Adding multiple automated builds

在上图中的示例中,我...

  • 添加"最新" docker标记映射到github主分支
  • 添加" 0.1.0" docker tag,映射到github 0.1.0标签

请注意,github标记必须存在!

现在,当我单击“保存”并触发构建2构建时,一个用于最新标记,另一个用于0.1.0标记。

当你知道怎么做时很简单:)我想在这里提供一个完整的答案,因为这个文档很难记录。

答案 2 :(得分:4)

几个月前,我联系了docker支持,明确提供版本号,当时不支持。

您在docker hub上指定的是将要监视的git标记/分支。构建结果将始终标记为latest

答案 3 :(得分:4)

Usman在https://stackoverflow.com/a/26107743/155689

中回答了类似问题的解决方法

基本上

  • 进入自动构建设置,
  • 使用标记
  • 添加其他构建类型
  • 输入git标记名称
  • 并为其指定版本名称
  • 点击保存并触发构建

正如您所见,我已为this automated build

完成此操作

答案 4 :(得分:3)

我的解决方案是分配标签"最新"最新版本是在自动构建中使用以下配置:

| Type   | Name   | Dockerfile Location | Tag Name |
| Branch | master |        /            | latest   |

每当在master中有一个提交时,一个带有标记" latest"的新版本。已创建。

几天前出现了一个问题,自动构建使用分支名称作为标记名称,因此您可能会使用" master"找到一些构建。这是固定的:https://forums.docker.com/t/automated-builds-not-tagging-latest/683

答案 5 :(得分:2)

我还没有使用过这个功能,所以我错了,但今天当我去build settings标签并选择tag进行第二种类型的构建时,它自动拥有了正则表达式/.*/将选择所有标签。

我会在测试后立即更新。

答案 6 :(得分:2)

对于新的Docker Hub自动化构建,Anton Drukh的出色答案可以通过一条规则来实现

来源类型:标记

来源:/^v([0-9.])\.([0-9.])\.([0-9.])$/

Docker标记:release-{\1},release-{\1}.{\2},release-{\1}.{\2}.{\3},latest

请注意,这与Anton的回答略有不同,因为我是根据标记而不是主提交来构建最新的消息。

相关问题