我不确定如何命名Dockerfiles。 GitHub上的许多人使用没有文件扩展名的Dockerfile
。我给他们一个名字和名字吗?如果是这样的话?或者我只是称他们为Dockerfile
?
如果要在hub.docker.com上使用autobuilder,请不要更改dockerfile的名称。不要使用docker文件的扩展名,将其保留为null。文件名应该是:(根本没有扩展名)
Dockerfile
但是,你也可以这样做......
dev.Dockerfile
,uat.Dockerfile
,prod.Dockerfile
等。
在VS Code上你可以使用<purpose>.Dockerfile
,它可以正常工作。
dev.Dockerfile
,test.Dockerfile
,build.Dockerfile
等。
在VS Code上我使用<purpose>.Dockerfile
并且它被正确识别。
我认为每个容器应该有一个目录,其中包含一个Dockerfile(没有扩展名)。例如:
/db/Dockerfile
/web/Dockerfile
/api/Dockerfile
当您构建时只使用目录名称,Docker将找到Dockerfile。例如:
docker build -f ./db .
如果你想在hub.docker.com上使用autobuilder,它必须是Dockerfile
。所以那里:)
这似乎是真的,但就个人而言,在我看来,设计很糟糕。当然,有一个默认名称(带扩展名)但允许其他名称,并有办法为命令指定docker文件的名称。
拥有扩展也很好,因为它允许将应用程序与该扩展类型相关联。当我在MacOSX中单击Dockerfile时,它将其视为Unix可执行文件并尝试运行它。
如果Docker文件有扩展名,我可以告诉操作系统使用特定应用程序启动它们,例如我的文本编辑应用程序我不确定,但目前的行为也可能与文件permisssions有关。
我给他们一个名字和名字吗?如果是这样的话?
您可以根据需要为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。
如果你只有一个docker文件(每个目录),Dockerfile
是好的。如果您在同一目录中需要多个docker文件,则可以使用您想要的任何标准 - 如果您有充分的理由。在最近的项目中,有AWS docker文件和本地开发环境文件,因为环境差异很大:
Dockerfile
Dockerfile.aws
我在同一目录中创建了两个Dockerfiles,
# vi one.Dockerfile
# vi two.Dockerfile
构建两个Dockerfiles使用,
# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile
注意:您应该在目前的工作目录中..