Llo*_*ice 102 naming-conventions docker dockerfile
我不确定如何命名Dockerfiles.很多GitHub在Dockerfile
没有文件扩展名的情况下使用.我给他们一个名字和名字吗?如果是这样的话?或者我只是打电话给他们Dockerfile
?
tk_*_*tk_ 119
如果要在hub.docker.com上使用autobuilder,请不要更改dockerfile的名称.不要使用docker文件的扩展名,将其保留为null.文件名应该是:(根本没有扩展名)
Dockerfile
Run Code Online (Sandbox Code Playgroud)
Sah*_*uja 40
在vscode上,我使用dev.Dockerfile
它仍然可以正确识别它.
所以我在同一个文件夹中命名多个Dockerfiles的策略是:
test.Dockerfile
Eri*_*k B 32
我知道这是一个老问题,有很多答案,但我惊讶地发现没有人建议官方文档中使用的命名约定:
Run Code Online (Sandbox Code Playgroud)$ docker build -f dockerfiles/Dockerfile.debug -t myapp_debug . $ docker build -f dockerfiles/Dockerfile.prod -t myapp_prod .
上述命令将构建当前构建上下文(由 指定
.
)两次,一次使用 a 的调试版本,Dockerfile
一次使用生产版本。
总之,如果您Dockerfile
在构建上下文的根目录中调用了一个文件,它将被自动选取。如果Dockerfile
同一个构建上下文需要多个,建议的命名约定是:
Dockerfile.<purpose>
Run Code Online (Sandbox Code Playgroud)
这些 dockerfile 可以位于构建上下文的根目录中,也可以位于子目录中,以保持根目录更加整洁。
gar*_*ryp 25
我认为每个容器应该有一个目录,其中包含一个Dockerfile(没有扩展名).例如:
/db/Dockerfile
/web/Dockerfile
/api/Dockerfile
Run Code Online (Sandbox Code Playgroud)
当您构建时只使用目录名称,Docker将找到Dockerfile.例如:
docker build -f ./db .
Run Code Online (Sandbox Code Playgroud)
小智 24
我在同一目录中创建了两个 Dockerfile,
# vi one.Dockerfile
# vi two.Dockerfile
Run Code Online (Sandbox Code Playgroud)
构建两个 Dockerfiles 使用,
# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile
Run Code Online (Sandbox Code Playgroud)
注意:您应该在当前工作目录中..
Dir*_*tel 15
如果你想在hub.docker.com上使用autobuilder,它必须是 Dockerfile
.所以那里:)
Ash*_*ken 15
这似乎是真的,但就个人而言,在我看来,设计很糟糕.当然,有一个默认名称(带扩展名)但允许其他名称,并有办法为命令指定docker文件的名称.
拥有扩展也很好,因为它允许将应用程序与该扩展类型相关联.当我在MacOSX中单击Dockerfile时,它将其视为Unix可执行文件并尝试运行它.
如果Docker文件有扩展名,我可以告诉操作系统使用特定的应用程序启动它们,例如我的文本编辑器应用程序.我不确定,但目前的行为也可能与文件permisssions有关.
我给他们一个名字和名字吗?如果是这样的话?
您可以根据需要为Dockerfiles命名.默认文件名是Dockerfile
(没有扩展名),使用默认文件名可以在处理容器时使各种任务更容易.
根据您的具体要求,您可能希望更改文件名.例如,如果您正在构建多个体系结构,您可能希望添加一个指示体系结构的扩展,就像resin.io团队为HAProxy容器所做的多容器ARM示例:
Dockerfile.aarch64
Dockerfile.amd64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi
Run Code Online (Sandbox Code Playgroud)
在提供的示例中,每个Dockerfile都是根据不同的特定于体系结构的上游映像构建的.使用命令行构建容器时,可以使用--file, -f
选项指定用于构建的特定Dockerfile .
Dockerfile
如果您只有一个 docker 文件(每个目录),那么这是很好的选择。如果您需要在同一目录中存在多个 docker 文件,您可以使用任何您想要的标准 - 如果您有充分的理由。在最近的一个项目中,有 AWS docker 文件和本地开发环境文件,因为环境差异很大:
Dockerfile
Dockerfile.aws
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
66422 次 |
最近记录: |