Como ya vimos en el capítulo 6 la orden ADD funciona como una copia recursiva desde el origen hasta la carpeta destino en el contenedor, creando los directorios en caso de que no existan. Esta copia recursiva puede ser desde un contenido local o desde una URL y además si le pasamos un archivo comprimido a la orden ADD los descomprime de manera automática. Pero en caso de que este contenido venga de una URL:
- ¿Confiamos realmente en los autores?
- ¿Cómo sabemos que los contenidos no han sido comprometidos a nivel de seguridad en el origen?
- ¿Nos hemos protegido frente a ataques Man-In-The-Middle?.
Todo estos aspectos deben de ser tenidos en cuenta.
Al igual que ADD, COPY hace una copia recursiva desde el origen hasta el destino pero no permite ni URL de origen ni descomprime los ficheros. Si copiamos un archivo .zip este permanecerá como un archivo .zip. Esta vez el problema reside en ambos casos en la recursividad de la copia.
Cuando copiamos elementos de forma recursiva incrementamos la posibilidad de que suceda lo siguiente:
- Aumentar el tamaño de la imagen de manera innecesaria, tal y como dijimos anteriormente.
- Copiar en el contenedor ficheros sensibles que contengan claves, tokens de APis etc...
En ambos casos tenemos que tener un fichero .dockerignore debidamente configurado y que excluya explícitamente del proceso de copia recursiva archivos con claves como *.ENV, *.pem etc..
El contenido del fichero .dockerignore funciona de manera análoga al fichero .gitignore, tal y como hemos comentado a lo largo del curso. Una descripción más detallada de los contenidos que podemos escribir en este archivo la podéis encontrar aquí.