Não sei como nomear Dockerfiles. Muitos no GitHub usam Dockerfile
sem uma extensão de arquivo. Eu lhes dou um nome e uma extensão; se sim o que? Ou eu simplesmente os chamo Dockerfile
?
Não sei como nomear Dockerfiles. Muitos no GitHub usam Dockerfile
sem uma extensão de arquivo. Eu lhes dou um nome e uma extensão; se sim o que? Ou eu simplesmente os chamo Dockerfile
?
Respostas:
Não altere o nome do dockerfile se desejar usar o autobuilder em hub.docker.com. Não use uma extensão para arquivos docker, deixe-o nulo. O nome do arquivo deve ser apenas: (nenhuma extensão)
Dockerfile
no entanto, você pode fazer como abaixo também ...
dev.Dockerfile
, uat.Dockerfile
, prod.Dockerfile
Etc.
No VS Code, você pode usar <purpose>.Dockerfile
e funciona de acordo.
dev.Dockerfile
, test.Dockerfile
, build.Dockerfile
Etc.
No VS Code eu uso <purpose>.Dockerfile
e ele é reconhecido corretamente.
Eu acho que você deve ter um diretório por contêiner com um Dockerfile (sem extensão). Por exemplo:
/db/Dockerfile
/web/Dockerfile
/api/Dockerfile
Quando você cria apenas usa o nome do diretório, o Docker encontra o arquivo Docker. por exemplo:
docker build -f ./db .
Se você deseja usar o autobuilder em hub.docker.com, deve ser Dockerfile
. Então ai :)
Parece que isso é verdade, mas, pessoalmente, parece-me um design deficiente. Claro, tenha um nome padrão (com extensão), mas permita outros nomes e tenha uma maneira de especificar o nome do arquivo docker para comandos.
Ter uma extensão também é bom porque permite associar aplicativos a esse tipo de extensão. Quando clico em um Dockerfile no MacOSX, ele o trata como um executável do Unix e tenta executá-lo.
Se os arquivos do Docker tivessem uma extensão, eu poderia dizer ao sistema operacional para iniciá-los com um aplicativo específico, por exemplo, meu aplicativo de editor de texto. Não tenho certeza, mas o comportamento atual também pode estar relacionado às permissões de arquivo.
Eu criei dois Dockerfiles no mesmo diretório,
# vi one.Dockerfile
# vi two.Dockerfile
para criar os dois arquivos Dockerfiles,
# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile
Nota: você deve estar no diretório de trabalho atual.
Eu lhes dou um nome e uma extensão; se sim o que?
Você pode nomear seus Dockerfiles da maneira que desejar. O nome do arquivo padrão é Dockerfile
(sem extensão) e o uso do padrão pode facilitar várias tarefas ao trabalhar com contêineres.
Dependendo de seus requisitos específicos, você pode alterar o nome do arquivo. Se você está construindo para várias arquiteturas, por exemplo, convém adicionar uma extensão indicando a arquitetura como a equipe resin.io fez para o contêiner HAProxy, como exemplo de ARM com vários contêineres :
Dockerfile.aarch64
Dockerfile.amd64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi
No exemplo fornecido, cada Dockerfile cria a partir de uma imagem upstream diferente, específica da arquitetura. O Dockerfile específico a ser usado para a compilação pode ser especificado usando a --file, -f
opção ao criar seu contêiner usando a linha de comando.
Dockerfile
é bom se você tiver apenas um arquivo docker (por diretório). Você pode usar o padrão que desejar, se precisar de vários arquivos docker no mesmo diretório - se tiver um bom motivo. Em um projeto recente, havia arquivos docker da AWS e arquivos de ambiente de desenvolvimento local porque os ambientes eram bastante diferentes:
Dockerfile
Dockerfile.aws
Dockerfile.armv7hf
próximo a a Dockerfile.i386
.