Nuevamente tenemos el panorama en el cual las dos imágenes tienen un peso muy diferente.
Nosotros incluimos el testing y creció como en 70 megas y hay que analizar qué es lo que está sucediendo.
Técnicamente no está mal, ustedes podrían correrla la imagen así como está con ese peso.
Y no es que los archivos de testing sean los pesados, sino no son todos los paquetes para correr testing.
Pero si nosotros nos ponemos a pensar todo el testing no es necesario para correr la aplicación en producción.
Lo que sí ocupamos nosotros es únicamente tener en la imagen lo que realmente y es estrictamente necesario
para correr esa imagen.
Pero vamos a analizar esto Montemos nuestra imagen en un contenedor Docker container run espacio.
Vamos a utilizar obviamente el nombre que nosotros tenemos aquí dos puntos seguido de el tag que pusimos,
que fue el mapache.
Ok, y también voy a colocar esto para que lo corra de manera dit y presionemos enter.
Entonces ya monta el contenedor.
Lo tenemos corriendo aquí.
Vamos a examinarlo.
Docker execute espacio Interactive terminal espacio y aquí vamos a colocar el comando que nosotros ocupamos,
por ejemplo, el programa que queremos utilizar.
Si estamos trabajando con un Alpine, no tenemos directamente, por ejemplo, una PowerShell, pero
sí tenemos el Walkman o el SEO y vamos a poner aquí Vim y búsquense el SH, que básicamente esto es
que quiero lanzar un shell y aquí me faltó poner también y especificar el contenedor que yo quiero,
que este caso era uno b7 y lo estoy tomando de aquí.
Ok, ahora sí presionamos Enter.
Noten que estamos dentro de la carpeta app y podemos hacer un clic para limpiar la consola y tener un
poco más de espacio.
Es esto un poco más grande?
Si nosotros hacemos ahora un LS y esto lo podemos hacer tanto si están en Windows o Linux o Max, pero
voy a presionar Enter.
Vamos a anotar que aquí tenemos el contenido que nosotros copiamos.
Se acuerdan que nosotros vinimos, hicimos el copy?
Es decir, copiar todo?
Es este esa estructura que tenemos aquí?
Todo, todo, todo.
Y lo pegamos acá.
Esto es todo lo que nosotros copiamos.
Entonces estamos copiando el Docker File que no es necesario.
Los módulos de no técnicamente sí son necesarios para correr la aplicación, pero no ocupamos tantas
cosas.
Si nosotros hacemos un cd a los módulos de Node y hacemos un LS, van a ver que hay un montón de paquetes.
Aquí están los 200 y pico dependencias que ocupa y si el hay config, db, etcétera etcétera etcétera
y un montón de cosas que realmente nosotros no ocupamos.
Ok, entonces nuevamente ls ese montón de archivos.
Voy a hacer un cd y nuevamente el LS para seguir examinando.
Luego también tenemos el directorio del testing.
El testing realmente lo ocupo.
O sea, sí, suponiendo de que realmente ya tenemos nuestra aplicación en producción, el testing no
es necesario.
Si entonces hacemos un cd a test a la carpeta de test y luego en LS vamos a ver que ahí tenemos dos
stack task de task en TLC y van a ver que ahí tenemos nuestro archivo de todo el testing que nosotros
hicimos y si tuviéramos muchos más, ahí aparecerían todos los demás archivos de testing.
Ok, pero técnicamente más de uno va a decir OK Fernando, pero el testing yo lo puedo copiar si quiero
ejecutar e integrar la parte de las pruebas a la hora de crear la imagen.
Y tiene toda la razón.
Pero una vez ya pasamos todas las pruebas, podríamos borrar esos contenidos que nosotros no ocupamos
para evitar cargar nuestra imagen con información innecesaria.
Entonces, en pocas palabras, el cd ls.
Entonces, en pocas palabras, la idea es tener aquí única y estrictamente lo que nosotros necesitamos
para correrlo.
Recuerden que aunque ustedes lleguen aquí y hagan el remove de este directorio y remuevan lo que ustedes
necesitan, técnicamente solo lo están borrando del contenedor que está corriendo, o sea, de la imagen
que está corriendo en el contenedor.
Cuando ustedes vuelvan a montar el contenedor o la imagen en un contenedor, va a volver a aparecer
todo lo demás, así como nosotros dejamos nuestra imagen.
Entonces vamos a empezar a hacer un par de optimizaciones a esta imagen en la próxima clase.