如何命名Dockerfiles

问题描述 投票:74回答:8

我不确定如何命名Dockerfiles。 GitHub上的许多人使用没有文件扩展名的Dockerfile。我给他们一个名字和名字吗?如果是这样的话?或者我只是称他们为Dockerfile

docker dockerfile naming-conventions
8个回答
96
投票

如果要在hub.docker.com上使用autobuilder,请不要更改dockerfile的名称。不要使用docker文件的扩展名,将其保留为null。文件名应该是:(根本没有扩展名)

Dockerfile

但是,你也可以这样做......

dev.Dockerfileuat.Dockerfileprod.Dockerfile等。

在VS Code上你可以使用<purpose>.Dockerfile,它可以正常工作。


36
投票

dev.Dockerfiletest.Dockerfilebuild.Dockerfile等。

在VS Code上我使用<purpose>.Dockerfile并且它被正确识别。


24
投票

我认为每个容器应该有一个目录,其中包含一个Dockerfile(没有扩展名)。例如:

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

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

docker build -f ./db .

15
投票

如果你想在hub.docker.com上使用autobuilder,它必须是Dockerfile。所以那里:)


14
投票

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

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

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


8
投票

我给他们一个名字和名字吗?如果是这样的话?

您可以根据需要为Dockerfiles命名。默认文件名是Dockerfile(没有扩展名),使用默认文件名可以在处理容器时使各种任务更容易。

根据您的具体要求,您可能希望更改文件名。例如,如果您正在为多个体系结构构建,您可能希望添加一个扩展,指示resin.io团队为HAProxy容器执行的体系结构multi-container ARM example

Dockerfile.aarch64
Dockerfile.amd64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi

在提供的示例中,每个Dockerfile都是根据不同的特定于体系结构的上游映像构建的。在使用命令行构建容器时,可以使用--file, -f option指定用于构建的特定Dockerfile。


3
投票

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

Dockerfile Dockerfile.aws


3
投票

我在同一目录中创建了两个Dockerfiles,

# vi one.Dockerfile
# vi two.Dockerfile

构建两个Dockerfiles使用,

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

注意:您应该在目前的工作目录中..

© www.soinside.com 2019 - 2024. All rights reserved.