En la clase anterior nos quedamos con el siguiente código nuestro Docker File.
Estamos tomando esta versión de Linux que ya viene con New preinstalado.
Nos movimos de directorio y copiamos la carpeta el archivo C, también el package punto JSON de nuestra
de nuestro proyecto y lo estamos pegando en el pack relativo a este working directory que sería app
ok.
Esto significaría así como está el código, nosotros copiamos únicamente si quieren esto, si quieren
no lo hagan.
Esto solo es una explicación.
Básicamente el Docker falta poco existiría, pero básicamente esos son los dos archivos que ahora tenemos
dentro de esta carpeta.
Ok, el paquete en el app es lo único que tenemos dentro de la nueva imagen que estamos creando.
Pero se acordarán ustedes que para poder ejecutar esto ocupamos los módulos de Node y cómo reconstruimos
nosotros o como ejecutamos el procedimiento para reconstruir esos modelos de Node?
Bueno, muy fácil, hacíamos un npm, bueno tal vez no lo hemos visto, pero hacemos un npm install.
Esto es algo propio de aplicaciones de node.
Esto le dice no package manager ve al archivo del package punto JSON, mira las dependencias y la dependencia
de desarrollo que todavía no tenemos ninguna.
Mira las dependencias y haz la instalación.
Esto a la vez reconstruye el paquete bug catch, lo que dice, como fue construido y también teníamos
los módulos de nuevo, que ahí están nuestras dependencias.
Entonces este paso tenemos que hacerlo también para que nuestro nuestra imagen ya las tenga de antemano.
Ok, entonces vamos a venir aquí y ejecutamos.
Ocupamos ejecutar este mismo comando npm install para ejecutar un comando hacemos el run seguido del
comando que queremos ejecutar.
En este caso sería npm show nuevamente como que ustedes vinieran a la terminal y hicieran npm install,
y si ustedes quieren ejecutar más comandos pueden poner ant y otro comando npm install otra vez y npm
solo cualquier cantidad que ustedes de comandos necesitan.
Ok, entonces después de ejecutar el run, eso sería instalar las dependencias.
Entonces después de ejecutar este procedimiento y esto va a ir secuencial, primero hace este paso,
luego hace este paso, luego hacia este paso, luego hace este paso.
Y cuando ese paso termina.
Entonces qué otra cosa necesitaríamos o que ya teníamos?
Ya tenemos el módulo de no, ya teníamos el package loop de JSON, ya tenemos todo.
Entonces lo que sigue era qué cosa?
Voy a venir a la terminal.
Podemos hacer el nodo tap, podemos hacerlo de esta manera con una app o bien podemos hacer el npm start.
Cualquiera de esas dos instrucciones funcionarían porque ya tenemos los scripts, tenemos el package
y tenemos instalado cualquiera de los dos va a funcionar.
Entonces, qué es lo que estoy haciendo aquí?
Necesito ejecutar este.
Qué cosa?
Cómo se llama esto?
Se llama.
Se llama un comando.
Ocupo ejecutar este comando o este de aquí?
Cualquiera de esos dos.
Entonces para eso es CMD de comando.
Y luego viene un ejecutable.
Y esto es una serie de instrucciones que ustedes quieren ejecutar.
Usualmente es la última porque le va a decir a la imagen de Docker qué hacer cuando se empiece a correr
el contenedor con esta imagen.
Este es el comando que se va a ejecutar para iniciar mi aplicación.
En este caso le voy a decir Node coma y la segunda línea sería el API JS.
Y esto va a ser el comando.
Este es el comando que se ejecuta cuando se limpia, cuando se hace el run de la aplicación comando
run de la imagen.
Voy a ponerle así.
Nuevamente.
Yo les dejo a ustedes en la hoja de atajos.
Una definición rápida de cada uno de estos pasos.
Vamos a buscar nuestro Docker File from que es la herencia?
Esto ya vamos a ver sobre los multi stage o multi stats.
Mejor dicho, ya vamos a hablar de eso.
Todavía no hemos visto variables de entorno, pero ya vimos el run inicialización npm install working
directory, que es lo que hace cada cosa.
La definición de volúmenes, agregar archivos, copiar archivos.
Luego tenemos por acá copiar todos los archivos y directorios ex post para exponer un puerto y este
es el comando que se va ejecutar cuando se inicie nuestro contenedor, etc, etcétera.
Básicamente esto es una definición.
Todavía no hemos visto otros comandos y hay muchos más que va a depender de lo que ustedes vayan a necesitar.
En fin, ok, vamos a probarlo aquí.
Construir esta imagen.
Ese es el punto más emocionante de todo, porque no esperen que la primera vez todo le salga bien.
Es muy raro que la primera vez que ustedes hacen una construcción todo les salga de mil maravillas.
Ok?
Muchas veces ustedes van a tener errores, van a leer los errores, van a resolver los errores y van
a volver a ser comandos de construcción.
Entonces vamos a regresar a nuestra terminal.
Limpien todo.
Ups!
Cancelen, Cancela, Inicien todo.
Y es importante.
Si ustedes están en Windows y están usando la ventana de comandos, pueden hacer dir.
Y si están en la terminal pueden ser o terminales en Linux o Mac pueden hacer LS y es muy importante
que ustedes estén en la E, en el PAT donde está la aplicación o donde está su archivo del Docker file.
Este Docker file tiene que estar ahí sin especificar el par relativo, pero para que sea más sencillo,
váyanse a la carpeta donde está el Docker field.
Entonces aquí para hacer comando de construcción sería Docker espacio build que es para construir.
Luego le podemos poner un tag.
Puede ser stack si quiere, podemos hacerlo así y luego usamos la forma corta y le voy a poner un nombre
como por ejemplo Cron Ticker.
Si ustedes no le ponen el tag, se puede poner después, pero después puede que ustedes tengan muchas
imágenes y no sepan cuál es cuál.
Entonces pónganle de una vez el tag espacio.
Ya vamos a hablar sobre las etiquetas también, porque este tag solo lo va a nombrar la imagen, pero
no le va a poner la versión o sí?
Es el bueno por defecto.
Si ustedes no lo especifican aquí le pone test, pero olvídense de eso.
Y luego viene un punto, porque este punto, este punto es el relativo a donde se encuentra el Docker
file.
Si ustedes dicen punto, significaría que se encuentra exactamente en el directorio donde nos encontramos.
Si se encontrara dentro de otro directorio sería pat, dir y no sé donde esté el Docker y ahí debería
ser el Docker Walk, por ejemplo.
Pero usualmente se lo van a ver de esta manera, porque más sencillo van a presionar Enter y este procedimiento
va a empezar a crear la imagen.
En este caso lo hace relativamente rápido.
Tenía, ya tenía en caché algo bueno hubiera borrado todo de antemano, pero esto va a empezar a realizar
una serie de procedimientos y van a ver que hay cuatro, uno de cuatro.
Por qué uno de cuatro?
Por qué?
1234.
Y luego teníamos el CMD, pero el cmd todavía no se ejecuta.
Como ustedes ven aquí no se está ejecutando, ese comando se va a ejecutar cuando se monte la imagen
en un contenedor.
Entonces nuevamente.
1234.
Perfecto.
Luego se crea la imagen y ya.
Eso es básicamente todo.
Si es la primera vez que ustedes lo ejecutan, va a demorar un poco en hacerse como.
Es algo relativamente pequeño, pero tiene que crear algo que más o menos va a pesar.
Como 100 megas, una cosa así, flecha direccional arriba y vuelven a ejecutar exactamente el mismo
comando y van a ver que se hace en fracciones de segundo, porque lo único que hace aquí doc es revisar
si hay algún cambio, ya sea que haya cambios en el código fuente o haya cambios en el orden en el cual
ustedes colocaron esta información, o sea los comandos, una buena práctica es que ustedes coloquen
los comandos que menos cambian arriba.
Por ejemplo, si ustedes fueran a exponer algún puerto, lo colocan aquí arriba, porque cada vez que
ustedes cambian, por ejemplo, si ustedes cambiaran este paso, todos los labels después de este o
los subsiguientes a este se van a volver a ejecutar y a crear.
Entonces eso ayuda a que los labels se mantengan en caché y sea más rápida la construcción.
En fin, no importa.
Regresemos a la consola y hagamos un Docker Image ls Y aquí tenemos nuestro cron ticker versión degrees
y un idee.
Corramos Docker container run.
Voy a correr aquí el cron ticker espacio y nada más.
Enter Docker container run con ticker not inicio cinco segundos después o bueno un poco el segundo.
Cinco diez, 15.
Ustedes me entienden?
Va a empezar a ejecutarse.
Procedimiento súper súper genial.
Ok, básicamente ya tenemos nuestra imagen que tiene más de uno se va a asustar por el peso, pero recuerden,
está Linux que están ahí instalado, tenemos las dependencias, tenemos muchas cosas.
Realmente nuestro código es bien ligero, pero tiene todo el sistema operativo.
Ok, todo lo que nosotros ocupamos para correr la aplicación y ahí está para cancelar la presión en
control C Pero si les pasa como a mí que se está quedando pegado esto control C, entonces podríamos
abrir una nueva instancia y terminar Docker container con Container LS y podemos hacer el docker container
para removerlo forzadamente del E 56 ok?
Y eso ya tiene que terminar el proceso también.
Esa es otra forma de hacerlo.
Y señoras y señores, tenemos nuestra primera imagen que lo que hace es realizar este procedimiento
cada segundo cinco, diez, 15 twenty thirty.
Bien interesante, dejémoslo así por ahora y en la siguiente clase hagamos actualizaciones tanto al
código y hagamos alguna actualización aquí en nuestro Docker File.
Qué les parece?
Nos vemos en el siguiente vídeo.