Para esta clase, les voy a pedir que por favor se descarguen del material adjunto Este archivo comprimido.
Lo descomprime y también vamos a crear una carpeta en el escritorio que se llama Docker y lo dejamos
caer aquí.
Esa es una aplicación en un gráfico el TypeScript.
Y note que no hace falta que ustedes.
Pues no hace falta que ustedes la conozcan, no hace falta que se sepan.
Estas tecnologías no es el objetivo.
Vamos a tomar esta aplicación o toda esa carpeta y dejarla caer dentro de Visual Studio Code.
Y esto es más o menos lo que nosotros tenemos ahorita.
La idea es que nosotros perfectamente podemos hacer las instalaciones de las dependencias y todo lo
demás, pero yo quiero.
Es más, este archivo de Jean-Luc lo vamos a borrar borrando también.
Y la idea es que esta aplicación, nosotros, a pesar de que la tenemos desarrollada y está en nuestro
file system de nuestra computadora, quiero hacer toda la instalación de las dependencias y ejecutarla
dentro de un contenedor de Linux que está corriendo una versión de Node.
Aquí es algo interesante porque puede ser que ustedes se encuentren casos en los cuales esto no hace
falta que ustedes vengan, en los cuales ustedes tienen alguna dependencia de que esta aplicación necesita
la versión 17 de Node, la versión 14 de Node, la versión 11 de Node.
Puede que ustedes se encuentren en panoramas en los cuales necesitan una versión específica de alguna
del engine de Node, por ejemplo, o el del viaje, que en este caso sería lo que corre, lo que utilizan
node.
En fin, no importa.
La cosa está de que nosotros ocupamos correr esta aplicación, pero en un entorno de Linux, si ustedes
están en Linux, pues básicamente ya lo tienen ahí, pero de igual manera les voy a pedir que lo hagamos
juntos.
Por favor abran el archivo que se encuentra de Hello World y busquen el que dice Hello World resolverá
TS.
Ok, van a ver que aquí dice Hola mundo este hola mundo es algo que va a aparecer eventualmente cuando
ustedes hagan alguna consulta, pero van a ver que aquí dice Hola mundo dentro de Hello World Resolver
y vamos a tener errores porque obviamente no tenemos las dependencias instaladas en nuestro equipo,
pero eso está bien.
Ok, vamos a regresar ahora a una terminal o a la terminal integrada de Luis el Studio Code o la terminal
propiamente o fuera de su computadora.
Cualquiera de las dos.
Pero si ustedes se encuentran fuera de lo que es la Visual Studio Code, porque Visual Studio Code también
tiene su propia terminal, la cual automáticamente navega a la carpeta del proyecto, lo cual es bastante
útil.
Pero pero si estamos en la terminal integrada, hay que hacer un cd y navegar a la carpeta de nuestra
aplicación, que es de nuestra web, de la carpeta que nosotros creamos en el escritorio.
Por favor, necesito que estén ahí para los usuarios de Mac y Windows y Linux.
Voy a escribir luego para confirmar el PAT y para los usuarios de Windows que están en la PowerShell
también pueden hacer el pedido de OK, está en Git, también lo van a poder hacer, pero lo que necesito
es que ustedes se encuentren en esa carpeta.
Ok, bien, una vez dicho eso, yo quiero utilizar una imagen de nube.
Pueden ir a Hoppy Docker punto com nuevamente.
Aquí en la barra de búsqueda pueden buscar Node.
Váyase a la oficial.
La imagen oficial en los tags.
Digamos que quiere usar una versión en particular.
Si quiere usar la versión 16 menos Alpine, quiere usar la versión 16 de Node y pueden usar cualquiera
de estos tags.
Por ejemplo, quiero irme a que dice 16 Alpine 13.16.
Esta es la versión específica de no que yo quiero correr en mi contenedor para esta aplicación, porque
esta aplicación necesita a la versión de 16 de NOT y lo vamos a correr en este Linux.
Ok, entonces piense esto o bien escríbanlo, regresemos a la terminal y ejecutamos el siguiente comando,
que no es complicado que recuerden mi objetivo es bueno, cerramos esto por ahora.
Mi objetivo es que aquí tengamos las dependencias y tengamos todo lo necesario para ejecutar nuestra
aplicación, pero desde nuestra terminal, pero enlazando ambos directorios, entonces comenzamos con
lo típico si quiere vengamos a Visual Studio Code, crea un nuevo archivo porque esto es un comando
que va a ser un poco largo y si se equivocan es más fácil copiarlo y pegarlo.
Luego le voy a enseñar cómo mantener todos estos comandos a la mano.
Entonces vamos a escribir Docker Container Run, ya sea back slash.
Ustedes se encuentran en el terminal o en la PowerShell.
Voy a ponerle el nombre a la aplicación de Next app Back Slash Enter.
Luego Eso es algo bien particular de cuando se encuentra trabajando dentro de estas imágenes.
Quiero especificar el Working Directory, que esto es algo que vamos a ver cuando entremos a la terminal
interactiva o entremos a la terminal del contenedor.
Quiero especificar que me voy a encontrar trabajando en la carpeta app.
Esto es básicamente como si ustedes hicieran un cd app dentro del contenedor, es decir, nos movemos
a esa carpeta.
Básicamente esto es lo que significa esto back slash.
Para seguir haciendo la siguiente línea, voy a escribir la parte de Publish.
Vamos a hacer el pulse del port o del puerto espacio.
Voy a conectar el puerto 3000 de mi máquina o si quieren, para más diversión.
Voy a poner el 1080 y lo voy a conectar con el 3000.
El puerto 80 es el que está escuchando por defecto el localhost o pueden poner cualquier puerto, pero
sí lo voy a conectar con el 3000, porque eso es lo que expone por defecto esa aplicación.
Terminamos con back slash.
Noten que no estoy poniendo D de bitch, lo estoy dejando así porque quiero ver todos estos procesos,
todo lo que va a suceder en la terminal.
Ok, la siguiente línea viene la la magia del baile.
Bonnie ve para hacer el baile.
Si yo quisiera utilizar un un módulo con nombre.
Pero un nombre.
Yo escribo aquí el nombre del volumen.
Ok, pero en este caso, yo lo que voy a hacer lo siguiente voy a poner entre comillas dobles.
Es igual en la PowerShell o en la terminal paréntesis, siempre doblar paréntesis y dentro p doble de
que sería el paz que nosotros vimos.
Se acuerdan?
El p p de ley de no hace falta que si ustedes no lo pueden ejecutar, esto va a funcionar en la parte
de Doc.
OK, este es básicamente eso lo que significa P.
De todo el paz de donde se encuentra actualmente la terminal.
Ok, voy a enlazar ese esa carpeta con las app que yo sé que aquí vamos decir Bueno, pues estoy en
el Working Directory y aquí estoy en el Working directory.
En teoría esto estaría como de más, pero nuevamente quiero hacer esta este enlace ok, quiero hacer
este enlace.
Por qué?
Porque este working directo a mi me va a servir para ejecutar los siguientes comandos back slash, enter.
Esta es la magia del cine.
Voy a conectar donde sea que me encuentre.
Suponiendo que me encuentro ubicado en donde se encuentran todos estos archivos y lo voy a enlazar a
una carpeta que se encuentra dentro del contenedor de Node, dentro del contenedor de Linux, básicamente.
Y ahí es donde voy a hacer ese bamboleo, voy a enlazar esas dos carpetas y en la siguiente línea vamos
a utilizar la imagen de no dos puntos, la que nosotros copiamos ahí.
Ok.
No dice bueno la versión de Node.
La imagen de Node en el tag 16 Alpine 3.16.
Y ahora viene algo genial.
Por defecto esas imágenes de Node simplemente se montan, se ejecutan y como ya no hay ningún comando
que se mantenga activo, entonces se va a terminar, se cierra.
Entonces puedo ejecutar un comando, un sh, un un shell command en el cual voy a escribirlo tan pronto
mi imagen está montada y ya he terminado de hacer todo el proceso de levantamiento de la imagen.
Y acá voy a escribir los siguientes comandos Ojo jan install para instalar las dependencias y después
de que haga esa instalación de dependencias, voy a ejecutar el comando de Jan Start dos Dev.
Ok, estos comandos no hace falta que ustedes lo sepan, pero esto es básicamente instalar las dependencias
que tiene mi proyecto, es decir, las dependencias que están aquí tanto de desarrollo como de producción.
Y luego el siguiente comando, que es después de que haga esto ejecute el siguiente con doble ampersand
ya estar dos puntos de que significaría que ejecute este script que tenemos acá que básicamente levanta
la aplicación.
Nota que yo no tengo NEST instalado en mi computadora.
Entonces vamos a hacer el inicio del modo de observador observador dentro de la misma.
Uff, yo sé que esto será bastante complicado.
Tal vez la primera vez puede ser un poco abrumador, pero poco a poco vamos a ir viendo cada uno de
estos comandos el nombre, el Working directory, que su comparación se dentro del contenedor, la parte
de publicar el puerto, el volumen, que esto es lo nuevo, usar una imagen y esto es que tan pronto
la imagen se monta.
Quiero ejecutar un shell man para ejecutar esto.
Este comando se va a quedar en modo listener para estar pendiente de los cambios.
Y ahora si vamos a hacer esto, vamos a la terminal, peguen el comando Enter y aquí me dice que no
puede encontrar la parte de Docker, que es porque yo reinicié mi computadora y no tengo abierto el
timón o no tengo abierto el proceso de lo que es timón.
Entonces esperemos un momento.
Ok, ya se levantó.
Voy a borrar cualquier cosa que tenga por acá.
Porque yo no tengo nada corriendo y vamos de nuevo.
Ejecutemos esto.
No puede encontrar la imagen de Nod.
16 Alpine 3.16 Localmente la va a descargar.
Hay un layer que ya existe aquí.
Ven Que genial eso.
Estaba utilizando el mismo layer.
Y ahora empieza el proceso la primera vez.
Esto va a demorar un poco porque no es tan rápido.
Nuevamente, hacerlo de la manera tradicional, es decir, ejecutar todo localmente.
Pero después de la primera vez que montemos esto y tengamos nuestras dependencias ya generadas, es
mucho más rápido.
La segunda, las siguientes veces.
Ok, aquí hay un montón de lords.
Noten que aquí ya descargó la imagen.
Ya Jaime Stoll dice que no encuentra el OK File.
Entonces lo va a empezar a crear.
Entonces este proyecto contiene logs generados por una herramienta diferente al ya.
En fin, no importa, resolviendo los paquetes seguimos viendo por acá igual hay mucha información acá,
mucha información de los procesos.
Luego van a ver aquí que ya esta haciendo el paso dos de cuatro que es haciendo el fetch de los paquetes.
Luego aquí está haciendo el la, el enlace de las dependencias, que todo esto es propio y esto va a
demorar un poco.
Puede que usted ya haya terminado, pero por ahora también podemos regresar a nuestra Visual Studio
Code y van a notar algo interesante que apareció aquí.
Estos módulos de no, yo no los tenía.
Estos módulos de no fueron creados Cuando se levantó nuestra imagen de Node en el contenedor y hizo
el Bind volume.
Al hacer este mime volume lo que suceda dentro de ese contenedor, específicamente dentro de la parte
del app, lo que sea que suceda ahí se va a ver reflejado en mi equipo y por eso aquí aparecieron los
módulos de Node.
Luego esto puede ser que demore un poco más.
Puede ser que ustedes ya les haya terminado.
Entonces yo voy a cortar el video hasta que ya este proceso pase.
Ok, entonces regreso unos momentos.
Ok.
Tardó su rato en hacerlo, más o menos unos como dos minutos.
Pasó desde que corté el video hasta que ya pasó el paso en el cual estaba, bueno, parecía que estaba
trabado, pero la verdad estaba simplemente trabajando.
Van a ver que aquí ya teníamos la aplicación corriendo.
Dice que la aplicación está corriendo y todo bien, la aplicación ya se levantó correctamente y si ustedes
se acordaran, nosotros hicimos el mapeo del puerto 80 con el 3000 del contenedor.
Vamos a venir aquí, escribir localhost nada más, simplemente escriban localhost, presionen enter
y van a ver que aquí ya tenemos un status de respuesta.
Cuatro cuatro No puede encontrar esto por esto es una buena señal.
Por qué?
Porque aquí ya nos conectamos a nuestra aplicación de Nest.
Voy a venir acá.
Voy a escribir Slash Graph Curl.
Presione Enter.
Debería de aparecer algo de Apolo Studio.
Hagan clic aquí en Query Your server.
Vamos a entrar a una pantalla.
Y aquí tenemos información que obviamente yo no puse esto.
Yo no instalé esto.
Yo no lo configuré.
Bueno, técnicamente sí lo hice, pero fue en otro curso y voy a escribir aquí.
Lo presioné en control Enter.
Lo que sea que ustedes tengan aquí lo pueden borrar y van a ver que aquí dice Hola mundo.
Les voy a pedir que cierren la terminal o el proceso.
Yo me cayó el video cuando lo hice, pero ahora nuevamente la terminal.
Si ustedes tenían abierta cierren la o la cierran a la fuerza, pero necesito que cancelemos el proceso.
Hagamos un docker container.
Container ls y detengamos y removamos ese contenedor Docker container.
RM cf para hacer la fuerza.
Ocho Fr.
Enter.
Busquémoslo a la fuerza.
Regresemos a navegador web.
Van a ver que aparece el error.
Me dice que no logra encontrar ese e esa definición y si presiona control enter van a ver que tenemos
un error.
Y si intentamos llegar nuevamente a localhost 80 presionamos enter y ya van a ver que no se puede mostrar
nada porque no tenemos nada corriendo ahí todavía.
Todavía.
Por favor, por favor no vayan a borrar la aplicación que tenemos acá y nos vemos en el siguiente video.