如何在Dockerfile中声明多个维护者?

44

我该如何最好地表明使用 Dockerfile 构建的 docker 镜像有多个作者/维护者?如果我包含多个独立的 MAINTAINER 命令,只有最后一个似乎生效。

如何最好地表明使用 Dockerfile 构建的 docker 镜像有多个作者/维护者?如果我包含多个独立的 MAINTAINER 命令,只有最后一个似乎生效。

MAINTAINER Me Myself "myself@example.com"
MAINTAINER My Colleague "mycolleague@example.com"

只有mycolleague出现在docker inspect的输出中。

我应该在单个MAINTAINER行中使用逗号分隔的列表吗?想要列出两个维护者是一个无用且复杂的事情吗?我是否应该与同事比试,看看将谁的电子邮件放入文件中?


我也在寻找解决方案。也许在一行中有多个维护者是可以的? - Kevin Wittek
可能吧。如果“MAINTAINER”是一个任意字符串(或一系列空格分隔的标记),那么我认为将多个人放在同一行上是可以的。我只是不确定是否有常见的惯例。 - amacleod
1个回答

81

在Dockerfile中,只能指定一个MAINTAINER指令。

此外,MAINTAINER将在即将到来的1.13.0版本中被弃用,请参见弃用信息和此拉取请求

推荐的解决方案是使用LABEL代替,例如:

LABEL authors="first author,second author"

标签具有key=value语法。这意味着您不能多次分配相同的标签,也不能为给定标签分配多个值。但是,您可以使用您选择的语法将多个值合并为一个,如示例所示。


7
目前的建议是使用"org.opencontainers.image.authors"作为关键字,因为这是一个更广为人知的元数据关键字。它仍然是自由格式的字符串值。 - merv
1
你知道 org.opencontainers.image.authors 是否总是键名,或者前几部分是否应该是我的组织的反向域名,例如 com.example.image.authors - amacleod
2
很好的问题,@amacleod。看起来应该使用org.opencontainers.image.authors作为键,因为它在OCI规范中指定,参见引用的OCI image-spec annotations: “前缀org.opencontainers保留用于Open Container Initiative(OCI)规范中定义的键,不得被其他规范和扩展使用”。 - Johan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接