Para esta clase voy a ocupar el codigo fuente de la sección anterior que es nuestro cron ticker.
No se preocupen, ya pronto lo vamos a dejar de utilizar y hacer este procedimiento con alguna aplicación
un poco mas real.
Pero tomemos ese cron.
Aunque es una aplicación real, no?
En fin, abrimos el Crown Ticket y lo dejamos caer acá.
Si ustedes no tienen esta aplicación, pueden ir al material adjunto.
Yo les dejo a ustedes hoy como quedó la sección anterior, ahí tienen la información, etcétera.
Ok, esto es así como lo dejamos exactamente en la E al final de la sección anterior.
Ahora inclusive yo les dejé corriendo o yo dejé corriendo.
Aquí vamos a buscar donde tengo miedo que stop, vamos a buscarlo por aquí.
Van a ver que también tengo este Mai Builder corriendo.
Ustedes también pueden detenerlo.
Pueden hacer lo que necesiten.
Esto de acá.
Este Builder es una imagen que está corriendo, esa versión de Linux que nos ayuda a nosotros a poder
correr y generar todas las diferentes versiones.
Es esta imagen en general.
Yo solo la voy a ocupar para construirla, pero es como cualquier otra imagen.
Ustedes la pueden detener, la pueden volver a levantar, la pueden borrar, pueden hacer lo que ustedes
necesiten con esto.
Es más, si yo la borro, vamos a hacer también esto.
Es como parte del ejercicio, vamos a abrir la terminal.
Si yo quiero listar todos los Builders, entonces voy a venir aquí y hacer un Docker Build x ls y van
a ver que ahí teníamos nuestro builder anterior y este asterisco significa que ese es el que voy a utilizar.
Entonces para este ejercicio voy a seleccionar Main Builder y lo vamos a eliminar, pero para eliminarlo
tengo que pasarme a otro Builder, entonces Docker Ville X us y voy a pasarme al default.
Ok, ya nos pasamos al default y si yo hago nuevamente Bill x s van a ver que yo estoy acá.
Ahora si lo podemos borrar Docker Build x.
Cuál es el comando si queremos borrar algo?
RM igual que siempre y el nombre de mi builder.
Voy a presionar Enter y ahí lo tenemos.
Este cero básicamente es por la réplica.
Ya había hablado de eso antes, pero ese es el nombre que nosotros tenemos aquí.
Ok, perfecto.
Cerremos.
Y ahora, si ya en la próxima clase nos vamos a enfocar en trabajar esta nueva aplicación.
Que por cierto, miren que yo agregué el doc ignore el git ignore en el cual estoy excluyendo estos
archivos que yo no quiero que sean parte de mi repositorio de git, porque yo lo subí a GitHub para
compartirlo con ustedes.
Si quieren saber más sobre GitHub, recuerden que tengo un curso de git y git que les puede servir.
Es indispensable hoy en día saber git.
Y otra cosa que quiero hacer es que en el toque ignore.
También voy a agregar el directorio.
Ahora no sé si ya lo habíamos hecho, me anticipé.
En fin, esto es porque estos archivos tampoco quiero que se vayan a mi imagen por los momentos.
Regresemos a nuestro Docker File y recuperemos o refrescamos la memoria sobre qué fue lo que nosotros
hicimos y cuál fue el problema o cuál es el problema que lo que les voy a mostrar pretende solventar.
Cuando nosotros empezamos a crear la aplicación, obviamente tomamos una versión de Linux basado en
la arquitectura que estoy creando en ese momento.
Esto está bien.
Me paso el working directory, copio el package json, eso también está bien y hago la instalación de
las dependencias.
Todas las dependencias.
Copio todos los fuentes que no estén en el Docker, ignore y luego ejecuto el testing.
Aquí podemos ver esto en varias etapas.
Hay gente que hace dos.
Hay gente que hace tres etapas status.
Hay gente que le dice stage en la documentación está como State, pero en fin.
O multi state build, algo si se conoce.
En fin, entonces nosotros copiamos todo acá y luego ejecutamos el testing.
Desafortunadamente, cuando ya termina el testing manualmente estamos borrando carpetas y directorios
de nuestro proyecto, cosa que en teoría no está mal, pero técnicamente puede ser que a nosotros se
nos olvide.
Diferentes directorios y carpetas que algún procedimiento de desarrollo o de testing o de testeo creó.
En este caso yo me acuerdo porque yo lo hice y sé que el test y los módulos de NOT también los tengo
que eliminar.
Pero técnicamente cuando nosotros ya pasamos esta etapa, yo tengo que hacer cierta limpieza y esta
eliminación manual es algo que uno puede cometer diferentes errores también, pero uno de los principales
es que nosotros nos impide poder manejar diferentes piezas en el caché o optimizar la construcción de
nuestra imagen.
De nuevo, después de que se hace esa parte, volvemos a hacer la instalación de las dependencias de
producción y luego tenemos la imagen de construcción.
Aunque para esta aplicación es relativamente sencillo, hay varias etapas que yo podría construir,
como por ejemplo solo para darles una idea, perdón, una idea podríamos memorizar en caché.
Es decir, cuando nosotros construyamos mediante el proceso de construcción normal, podríamos crear
una etapa que sólo sea para las dependencias de mi aplicación, es decir, sólo una, una etapa que
sería como un Linux con sólo las dependencias que yo necesito, ok?
Y así las manejamos en caché.
Y luego puede ser que nosotros tengamos otra, otra, por ejemplo, otra, otra versión de Linux, nuevamente
una instancia limpia, o sea, una versión totalmente limpia y vacía en la cual simplemente copie el
resultado de algo del procedimiento anterior, copie los nuevos archivos y ahí ejecutemos el testing
ok?
O la verificación o la construcción o lo que ustedes necesitan.
Y después de ejecutar eso, en vez de eliminarlos, simplemente creó una nueva instancia fresca de Linux.
Así, nuevamente, la misma imagen la creó fresca y con esa imagen, con esa imagen en particular,
nosotros vamos a poder tomar únicamente lo el resultado de la carpeta o el resultado del procedimiento
anterior o la imagen anterior, y únicamente copiar lo que realmente necesitamos en esa nueva instancia
y esa última instancia que es la que tiene este comando, es la que nosotros vamos a utilizar para levantarla.
Ok, sonará complicadísimo, pero la verdad es un procedimiento técnicamente mecánico que va a hacer
que este archivo sea inclusive más fácil de leer.
Dejémoslo así.
Sólo fue una breve descripción y nos vemos en la próxima clase.