Buenas practicas con Dockerfile
Encadenar instrucciones &&
Como cada comando RUN en el Dockerfile genera una nueva capa de nuestra imagen anterior podemos encadenar los "RUN's" para así generar menos capas de nuestra capa editable de las imágenes:
/Dockerfile
si ejecutamos para crear una nueva imagen con el anterior Dockefile solo veremos que se ejecutan dos pasos en lugar de cuatro
Comandos multilínea
Otra buena práctica es ordenar los argumentos multi-línea alfabéticamente , esto ayudará a evadir la duplicación de paquetes y hará el listado mucho mas fácil de actualizar y leer, por ejemplo:
/Dockerfile
CMD
con este comando podemos encadenar acciones que se ejecutan una vez se construye el contenedor (partiendo de la imagen creada con el Dockerfile). Si no se pone ningún CMD se ejecuta el comando por default que viene de la imagen original:
/Dockerfile
Ahora construimos la imagen con el anterior Dockerfile
en el paso 3 imprime en consola:
luego construimos el primer contenedor con la imagen anteriormente creada
Copy
Este comando copia los archivos contexto del build hacia el fileSystem del contenedor
luego construimos la imagen
luego el contenedor
una vez allí podemos verificar que el folder src y el archivo abc.txt han sido enviados al contenedor
ADD
Es similar a COPY pero además de copiar y enviar archivos también puedo descargar archivos desde internet y agregarlos al contenedor.
También cuenta con la habilidad de descomprimir archivos
la regla es usar COPY a menos que se esté completamente seguro de que se requiere ADD
Last updated
Was this helpful?