Cómo nombrar Dockerfiles
No estoy seguro de cómo nombrar Dockerfiles. Muchos en GitHub lo usan Dockerfile
sin una extensión de archivo. ¿Les doy un nombre y extensión? ¿entonces qué? ¿O simplemente los llamo Dockerfile
?
[ 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
dev.Dockerfile
, test.Dockerfile
, build.Dockerfile
etc.
En VS Code lo uso <purpose>.Dockerfile
y se reconoce correctamente.
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 aDockerfile
y otra vez usando una versión de producción.
En resumen, si tiene un archivo llamado Dockerfile
en la raíz de su contexto de compilación, se seleccionará automáticamente. Si necesita más de uno Dockerfile
para 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.
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 .