在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等方案,就像我在本地构建图像时所做的那样。
答案 0 :(得分:33)
dockerhub上提供了自动化码头图像标记功能!我最近摆弄这个想要分享我的发现,跳过这个线程(希望没关系!)
所以我在dockerhub上有一个带有自动构建链接的公共GitHub仓库。我希望每次推送到:latest
分支时都会更新master
标记。另外,我希望为我在GitHub上创建的每个版本创建:X
,:X.Y
和:X.Y.Z
标记(在GitHub上标记为vX.Y.Z
)。
在文字中,所以复制粘贴更容易:
| 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链接
第2步 - 通过单击蓝色加号按钮将多个自动构建添加到同一个docker repo(大多数人不知道您可以添加多个自动构建)(参见下图)
在上图中的示例中,我...
请注意,github标记必须存在!
现在,当我单击“保存”并触发构建2构建时,一个用于最新标记,另一个用于0.1.0标记。
当你知道怎么做时很简单:)我想在这里提供一个完整的答案,因为这个文档很难记录。
答案 2 :(得分:4)
几个月前,我联系了docker支持,明确提供版本号,当时不支持。
您在docker hub上指定的是将要监视的git标记/分支。构建结果将始终标记为latest
。
答案 3 :(得分:4)
Usman在https://stackoverflow.com/a/26107743/155689
中回答了类似问题的解决方法基本上
正如您所见,我已为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的回答略有不同,因为我是根据标记而不是主提交来构建最新的消息。