I'm unsure of how to name Dockerfiles. Many on GitHub use Dockerfile
without a file extension. Do I give them a name and extension; if so what? Or do I just call them Dockerfile
?
相关问题
- Docker task in Azure devops won't accept "$(pw
- Unable to run mariadb when mount volume
- Unspecified error (0x80004005) while running a Doc
- What would prevent code running in a Docker contai
- How to reload apache in php-apache docker containe
If you want to use the autobuilder at hub.docker.com, it has to be
Dockerfile
. So there :)You may name your Dockerfiles however you like. The default filename is
Dockerfile
(without an extension), and using the default can make various tasks easier while working with containers.Depending on your specific requirements you may wish to change the filename. If you're building for multiple architectures, for example, you may wish to add an extension indicating the architecture as the resin.io team has done for the HAProxy container their multi-container ARM example:
In the example provided, each Dockerfile builds from a different, architecture-specific, upstream image. The specific Dockerfile to use for the build may be specified using the
--file, -f
option when building your container using the command line.On vscode, I use
dev.Dockerfile
and it still recognizes it correctly.So my strategy for naming multiple Dockerfiles in the same folder is:
purpose.Dockerfile
Don't change the name of the dockerfile if you want to use the autobuilder at hub.docker.com. Don't use an extension for docker files, leave it null. File name should just be: (no extension at all)
I think you should have a directory per container with a Dockerfile (no extension) in it. For example:
When you build just use the directory name, Docker will find the Dockerfile. e.g:
Dockerfile
is good if you only have one docker file (per-directory). You can use whatever standard you want if you need multiple docker files in the same directory - if you have a good reason. In a recent project there were AWS docker files and local dev environment files because the environments differed enough:Dockerfile
Dockerfile.aws