我不确定如何命名Dockerfiles。许多GitHub用户使用Dockerfile,但没有文件扩展名。我给他们一个名字和扩展;如果有,那又怎样?或者我就叫它Dockerfile?


当前回答

如果你想使用hub.docker.com上的autobuilder,它必须是Dockerfile。所以就这样了:)

其他回答

我在同一个目录下创建了两个dockerfile,

# vi one.Dockerfile
# vi two.Dockerfile

来构建dockerfile,

# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile

注意:你应该在当前的工作目录。

这似乎是真的,但就我个人而言,这似乎是一个糟糕的设计。当然,有一个默认名称(带扩展名),但允许使用其他名称,并有一种方法为命令指定docker文件的名称。

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

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

[请阅读完整答案]如果您想使用hub.docker.com上的autobuilder,请不要更改dockerfile的名称。不要为docker文件使用扩展名,让它为空。 文件名应该是:(没有扩展名)

Dockerfile

然而,现在你可以这样命名dockerfile,

test1.Dockerfile
$ docker build -f dockerfiles/test1.Dockerfile  -t test1_app .

or

Dockerfile.test1
$ docker build -f dockerfiles/Dockerfile.test1  -t test1_app .

这也是可行的。

如果你在同一个上下文中处理多个文件,你可以使用STDIN:

test1.Dockerfile
$ docker build -t test1_app - < test1.Dockerfile

dev.Dockerfile、测试。Dockerfile,构建。Dockerfile等等。

在VS Code中,我使用<purpose>。Dockerfile,它被正确识别。

如果你只有一个docker文件(每个目录),Dockerfile是很好的。你可以使用任何你想要的标准,如果你需要多个docker文件在同一个目录- 如果你有充分的理由。在最近的一个项目中,有AWS docker文件和本地开发环境文件,因为环境差异很大:

Dockerfile Dockerfile.aws