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


当前回答

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

Dockerfile Dockerfile.aws

其他回答

Dockerfile(自定义名称和文件夹):

   docker/app.Dockerfile
   docker/nginx.Dockerfile

构建:

   docker build  -f ./docker/app.Dockerfile .
   docker build  -f ./docker/nginx.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”。

我给他们一个名字和扩展;如果有,那又怎样?

你可以随意命名Dockerfiles。默认的文件名是Dockerfile(没有扩展名),使用默认可以使使用容器时的各种任务更容易。

根据您的具体要求,您可能希望更改文件名。例如,如果您正在为多个体系结构进行构建,您可能希望添加一个扩展,将该体系结构指示为树脂。io团队已经为HAProxy容器做了他们的多容器ARM示例:

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

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

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

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

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

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

docker build -f ./db .