Cómo nombrar Dockerfiles

Resuelto Lloyd R. Prentice asked hace 10 años • 11 respuestas

No estoy seguro de cómo nombrar Dockerfiles. Muchos en GitHub lo usan Dockerfilesin una extensión de archivo. ¿Les doy un nombre y extensión? ¿entonces qué? ¿O simplemente los llamo Dockerfile?

Lloyd R. Prentice avatar Sep 28 '14 00:09 Lloyd R. Prentice
Aceptado

[ Lea la respuesta completa ] No cambie el nombre del archivo acoplable si desea utilizar el constructor automático en hub.docker.com. No utilice una extensión para archivos acoplables, déjela nula. El nombre del archivo debería ser simplemente: (sin extensión alguna)

Dockerfile

Sin embargo, ahora puedes nombrar archivos acoplables como,

test1.Dockerfile
$ docker build -f dockerfiles/test1.Dockerfile  -t test1_app .

o

Dockerfile.test1
$ docker build -f dockerfiles/Dockerfile.test1  -t test1_app .

Esto también funcionará.

Si maneja varios archivos que se encuentran en el mismo contexto, puede usar STDIN:

test1.Dockerfile
$ docker build -t test1_app - < test1.Dockerfile
tk_ avatar Sep 28 '2014 10:09 tk_

dev.Dockerfile, test.Dockerfile, build.Dockerfileetc.

En VS Code lo uso <purpose>.Dockerfiley se reconoce correctamente.

Sahil Ahuja avatar Feb 20 '2018 06:02 Sahil Ahuja

Sé que esta es una pregunta antigua, con bastantes respuestas, pero me sorprendió descubrir que nadie sugería la convención de nomenclatura utilizada en la documentación oficial :

$ docker build -f dockerfiles/Dockerfile.debug -t myapp_debug .
$ docker build -f dockerfiles/Dockerfile.prod  -t myapp_prod .

Los comandos anteriores construirán el contexto de compilación actual (como lo especifica .) dos veces, una vez usando una versión de depuración de a Dockerfiley otra vez usando una versión de producción.

En resumen, si tiene un archivo llamado Dockerfileen la raíz de su contexto de compilación, se seleccionará automáticamente. Si necesita más de uno Dockerfilepara el mismo contexto de compilación, la convención de nomenclatura sugerida es:

Dockerfile.<purpose>

Estos archivos acoplables podrían estar en la raíz de su contexto de compilación o en un subdirectorio para mantener su directorio raíz más ordenado.

Erik B avatar Sep 21 '2020 15:09 Erik B

Creo que deberías tener un directorio por contenedor con un Dockerfile (sin extensión). Por ejemplo:

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

Cuando compila, simplemente use el nombre del directorio, Docker encontrará el Dockerfile. p.ej:

docker build -f ./db .
garryp avatar Mar 15 '2017 13:03 garryp