2014-09-27 15 views
29

我对如何命名Dockerfiles有点密集。如何命名Dockerfiles

GitHub上的例子似乎被称为Dockerfile。

我给他们一个名字和扩展名;如果是这样的话?或者只是称他们为Docker文件?

回答

39

如果你想在hub.docker.com上使用自动编译器,请不要更改dockerfile的名称。不要为docker文件使用扩展名,将其保留为空。 文件名应该仅仅是:(没有扩展名的全部)

Dockerfile 

希望帮助

+26

当你在同一个目录下有多个Dockerfiles时呢? – 2016-08-13 12:12:08

+0

@VisgeanSkeloru虽然有点麻烦,你可以把它们放在不同的目录,如果需要的话,无论我看到它在哪里看起来似乎已经建立了公约 – orustammanapov 2017-04-06 15:04:48

12

如果您想在hub.docker.com上使用自动编译器,它的必须是Dockerfile。所以:)

+2

谁只是路过式downvoted它没有理由或评论:很好做。我给出了与现在接受的解决方案相同(正确)的答案,只是更早,更少。 – 2014-11-27 18:02:10

9

看来,这是真实的,但个人而言,在我看来是设计不良。当然,有一个默认名称(带扩展名),但允许其他名称,并有一种方法来指定docker文件的命令名称。

扩展也很好,因为它允许将应用程序关联到该扩展类型。当我点击MacOSX中的Dockerfile时,它将它视为Unix可执行文件并尝试运行它。

如果Docker文件有扩展名,我可以告诉操作系统使用特定的应用程序启动它们,例如,我的文本编辑应用程序我不确定,但目前的行为也可能与文件权限有关。

13

我想你应该有一个每个容器的Dockerfile(没有扩展名)的目录。例如:

/db/Dockerfile 
    /web/Dockerfile 
    /api/Dockerfile 

当您只使用目录名称构建时,Docker将查找Dockerfile。例如:

docker build -f ./db . 
+0

它会从你的例子中构建3个容器吗? – alvas 2017-04-11 01:56:31

+0

@alvas是的,它会 – garryp 2017-04-11 09:02:15

+0

我自己喜欢这种方法 – Hcabnettek 2017-05-12 23:01:44

0

Dockerfile如果你只有一个docker文件(每个目录),这是很好的。如果您在同一目录中需要多个码头文件,则可以使用任何标准,如果您有充分的理由,则可以使用任何标准 - 。在最近的一个项目有AWS泊坞窗文件和本地开发环境的文件,因为环境不同够:

Dockerfile Dockerfile.aws

0

在vscode,我用dev.Dockerfile,它仍然可以正确识别它。

所以我在同一个文件夹命名多个Dockerfiles策略是:

purpose.Dockerfile