No estoy seguro de cómo nombrar Dockerfiles. Muchos en GitHub usan Dockerfile
sin una extensión de archivo. ¿Les doy un nombre y una extensión? ¿entonces qué? ¿O simplemente los llamo Dockerfile
?
No estoy seguro de cómo nombrar Dockerfiles. Muchos en GitHub usan Dockerfile
sin una extensión de archivo. ¿Les doy un nombre y una extensión? ¿entonces qué? ¿O simplemente los llamo Dockerfile
?
Respuestas:
No cambie el nombre del dockerfile si desea usar el autobuilder en hub.docker.com. No use una extensión para los archivos acoplables, déjelo nulo. El nombre del archivo debe ser: (sin extensión)
Dockerfile
sin embargo, también puedes hacer lo siguiente ...
dev.Dockerfile
, uat.Dockerfile
, prod.Dockerfile
Etc.
En VS Code puede usar <purpose>.Dockerfile
y funciona en consecuencia.
dev.Dockerfile
, test.Dockerfile
, build.Dockerfile
Etc.
En VS Code uso <purpose>.Dockerfile
y se reconoce correctamente.
Creo que debería tener un directorio por contenedor con un Dockerfile (sin extensión). Por ejemplo:
/db/Dockerfile
/web/Dockerfile
/api/Dockerfile
Cuando construyas solo usa el nombre del directorio, Docker encontrará el Dockerfile. p.ej:
docker build -f ./db .
Si quiere usar el autobuilder en hub.docker.com, tiene que serlo Dockerfile
. Por lo tanto, allí :)
Parece que esto es cierto pero, personalmente, me parece un diseño pobre. Claro, tenga un nombre predeterminado (con extensión) pero permita otros nombres y tenga una forma de especificar el nombre del archivo acoplable para los comandos.
Tener una extensión también es bueno porque permite asociar aplicaciones a ese tipo de extensión. Cuando hago clic en un Dockerfile en MacOSX, lo trata como un ejecutable de Unix e intenta ejecutarlo.
Si los archivos Docker tuvieran una extensión, podría decirle al sistema operativo que los inicie con una aplicación en particular, por ejemplo, mi aplicación de editor de texto. No estoy seguro, pero el comportamiento actual también puede estar relacionado con las autorizaciones de archivos.
He creado dos Dockerfiles en el mismo directorio,
# vi one.Dockerfile
# vi two.Dockerfile
para construir el uso de Dockerfiles,
# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile
Nota: debe estar en el directorio de trabajo actual.
¿Les doy un nombre y una extensión? ¿entonces qué?
Puede nombrar sus Dockerfiles como quiera. El nombre de archivo predeterminado es Dockerfile
(sin una extensión), y usar el predeterminado puede facilitar varias tareas mientras se trabaja con contenedores.
Dependiendo de sus requisitos específicos, es posible que desee cambiar el nombre del archivo. Si está construyendo para múltiples arquitecturas, por ejemplo, es posible que desee agregar una extensión que indique la arquitectura como el equipo resin.io ha hecho para el contenedor HAProxy, su ejemplo ARM de múltiples contenedores :
Dockerfile.aarch64
Dockerfile.amd64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi
En el ejemplo proporcionado, cada Dockerfile se crea a partir de una imagen ascendente diferente, específica de la arquitectura. El Dockerfile específico que se usará para la compilación se puede especificar usando la --file, -f
opción al construir su contenedor usando la línea de comando.
Dockerfile
es bueno si solo tiene un archivo acoplable (por directorio). Puede usar el estándar que desee si necesita varios archivos acoplables en el mismo directorio, si tiene una buena razón. En un proyecto reciente había archivos docker de AWS y archivos de entorno de desarrollo local porque los entornos diferían lo suficiente:
Dockerfile
Dockerfile.aws
Dockerfile.armv7hf
lado de a Dockerfile.i386
.