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


当前回答

Dockerfile有两个主要的命名约定:

1. 使用默认Dockerfile:

保持简单,这种方法适合简单的、独立的、定义良好的项目。

$ docker build -f ./Dockerfile.Dockerfile .

2. 使用自定义Dockerfile:

这种方法保持自定义,使开发人员熟悉应用程序上下文,方便了文件操作,并提高了调试能力,特别是在多个dockerfile的情况下。

$ docker build -t <containername> . -f <mycustomdockerfile>.Dockerfile

温馨提醒:

这些约定同样适用于常见的docker镜像构建命令,如“docker image build”和“docker-compose build”。

其他回答

Dockerfile有两个主要的命名约定:

1. 使用默认Dockerfile:

保持简单,这种方法适合简单的、独立的、定义良好的项目。

$ docker build -f ./Dockerfile.Dockerfile .

2. 使用自定义Dockerfile:

这种方法保持自定义,使开发人员熟悉应用程序上下文,方便了文件操作,并提高了调试能力,特别是在多个dockerfile的情况下。

$ docker build -t <containername> . -f <mycustomdockerfile>.Dockerfile

温馨提醒:

这些约定同样适用于常见的docker镜像构建命令,如“docker image build”和“docker-compose build”。

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

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

当你只使用目录名构建时,Docker会找到Dockerfile。例句:

docker build -f ./db .

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

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

# vi one.Dockerfile
# vi two.Dockerfile

来构建dockerfile,

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

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

[请阅读完整答案]如果您想使用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