Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
1 00:00:05,740 --> 00:00:11,200 El tercer contenedor que nosotros vamos a colocar en nuestro multi container App es esta aplicación 2 00:00:11,200 --> 00:00:15,030 de Pokemon que está construido a Inés y es básicamente un back in. 3 00:00:15,040 --> 00:00:20,050 También tiene su parte del frontend, que es para la gente, hace una petición a cierta carpeta pública, 4 00:00:20,050 --> 00:00:22,180 entonces nuestro mensaje ya lo vamos a ver. 5 00:00:22,420 --> 00:00:28,990 Pero técnicamente esto es puramente nuestro imagen que se conecta a la base de datos y hace el procesamiento 6 00:00:28,990 --> 00:00:29,740 de los mismos. 7 00:00:30,220 --> 00:00:34,390 Si ustedes estarán pensando que seguramente ya, ya sé que lo van a decir después. 8 00:00:34,390 --> 00:00:39,370 Ustedes pueden tener su aplicación del frontend también como una imagen y simplemente se monta esa imagen. 9 00:00:39,370 --> 00:00:43,810 Se le manda la variable de entorno, que sería en este caso cuál es la cadena de conexión a mi backend, 10 00:00:44,080 --> 00:00:45,490 y eso básicamente sería todo. 11 00:00:45,760 --> 00:00:52,090 Técnicamente podríamos montar nuestra aplicación del forum dentro de este backend, pero entre más tareas 12 00:00:52,090 --> 00:00:56,020 individuales haga, cada uno de estos contenedores es mejor, es mejor, Es mejor tener una aplicación 13 00:00:56,020 --> 00:01:00,940 que se encargue de hacer el backend y después nosotros simplemente actualizamos el front si es necesario 14 00:01:00,940 --> 00:01:04,450 o después solo actualizamos el backend si es necesario, pero no tendríamos que. 15 00:01:04,450 --> 00:01:09,010 No tendría mucho sentido hacer una modificación en ambos lugares de manera simultánea. 16 00:01:09,010 --> 00:01:13,300 Es decir, si algo pequeño cambian el en el backend porque el frontend tiene que verse afectado. 17 00:01:14,080 --> 00:01:16,750 En fin, son discusiones que se pueden tener después. 18 00:01:17,290 --> 00:01:20,770 En fin, en el material adjunto ustedes tienen un enlace que los lleva directamente a este repositorio 19 00:01:20,770 --> 00:01:21,490 que es mío. 20 00:01:21,490 --> 00:01:27,610 Yo lo subí a esta aplicación y si nos vamos a la parte de los tags van a ver algo interesante que vemos 21 00:01:27,610 --> 00:01:31,330 que hay diferentes arquitecturas de procesadores que están acá y de sistemas operativos que básicamente 22 00:01:31,330 --> 00:01:36,280 solo son Linux, pero son diferentes arquitecturas de Linux o de procesador, mejor dicho, procesadores 23 00:01:36,280 --> 00:01:37,260 que nosotros tenemos ahí. 24 00:01:37,720 --> 00:01:42,550 Esto es algo interesante, porque si nosotros buscamos Mongo, por ejemplo, y nos vamos a la imagen 25 00:01:42,550 --> 00:01:50,860 oficial de Mongo Tags van a ver que hay para diferentes arquitecturas de Windows, Linux o Mac. 26 00:01:50,860 --> 00:01:55,540 También es importante que nosotros hagamos nuestras imágenes, que esto también lo vamos a aprender 27 00:01:55,540 --> 00:01:59,830 muy pronto, hacerlas de múltiples arquitecturas, porque puede ser que ustedes se encuentren con una 28 00:01:59,830 --> 00:02:04,300 computadora que tiene cierto tipo de arquitectura de procesador, que cuando ustedes construyen la imagen, 29 00:02:04,300 --> 00:02:09,280 esa imagen está construida solo para esa arquitectura de procesador y su imagen intenta correrse en 30 00:02:09,280 --> 00:02:16,450 otro procesador puede ser, o en otra arquitectura procesador van a tener que o hacer o quedó que compus 31 00:02:16,450 --> 00:02:24,460 o o quedó que le haga el puente de compatibilidad, que eso reduce la eficiencia del contenedor o bien 32 00:02:24,460 --> 00:02:28,360 simplemente le va a decir no, yo no puedo correr eso y les lanza un error, especialmente si ustedes 33 00:02:28,360 --> 00:02:31,600 lo despliegan en HTML, Amazon, web service o cualquier lado. 34 00:02:31,600 --> 00:02:36,310 Si no está para arquitectura en la cual ustedes van a correr, su procesador ni siquiera les va a permitir 35 00:02:36,310 --> 00:02:37,030 una emulación. 36 00:02:37,470 --> 00:02:39,610 Y ya vamos a ver cómo hacer todo eso muy pronto. 37 00:02:39,610 --> 00:02:42,870 Y esto es parte de los ejercicios que nosotros vamos a hacer muy pronto, muy pronto. 38 00:02:42,880 --> 00:02:46,300 Ok, hagamos la tercera en nuestro tercer contenedor. 39 00:02:47,290 --> 00:02:51,220 Note que aquí dice que la aplicación está hecha a Good News, como se expone el puerto 3000. 40 00:02:51,250 --> 00:02:54,400 Estas son las variables de entorno necesaria que supongo debe indivi name. 41 00:02:54,790 --> 00:02:58,190 Estos son nombres de variables de entorno que yo definí en la aplicación intencionalmente. 42 00:02:58,210 --> 00:03:01,570 Les puse esos nombres una vez ya se tiene montada la aplicación. 43 00:03:01,600 --> 00:03:03,460 Note que está exponiendo el puerto 3000. 44 00:03:03,730 --> 00:03:10,000 Podemos mandar a llamar esto para cargar la e mandar a cargar nuestra semilla de la base de datos que 45 00:03:10,000 --> 00:03:11,680 está ahí y a la data inicial. 46 00:03:11,920 --> 00:03:13,630 Y también podemos probar un endpoint. 47 00:03:13,660 --> 00:03:17,950 Acá no tiene mucho sentido explicar todo el funcionamiento de la aplicación, pero con esto es más que 48 00:03:17,950 --> 00:03:18,520 suficiente. 49 00:03:18,550 --> 00:03:19,900 Echemos a andar esta aplicación. 50 00:03:20,320 --> 00:03:21,480 Vámonos a los tags. 51 00:03:21,520 --> 00:03:23,260 No usen el Layret. 52 00:03:23,260 --> 00:03:27,370 Recuerden, no usemos el vamos a usar en este caso la versión uno punto 0.0. 53 00:03:28,270 --> 00:03:31,820 Entonces pueden venir a copiarse todo este URL. 54 00:03:31,840 --> 00:03:33,030 Este es el usuario. 55 00:03:33,040 --> 00:03:36,610 Este es el La imagen propiamente está en este usuario. 56 00:03:37,330 --> 00:03:37,620 Copien. 57 00:03:37,630 --> 00:03:38,440 Piense todo esto. 58 00:03:39,040 --> 00:03:40,960 O mejor aún, podemos hacer clic aquí. 59 00:03:41,230 --> 00:03:43,750 Regresemos a Visual Studio Code. 60 00:03:44,500 --> 00:03:49,690 Voy a presionar Enter Enter un shift con tab para que esté al mismo nivel de manejo expreso y todo lo 61 00:03:49,690 --> 00:03:50,260 demás. 62 00:03:50,260 --> 00:03:55,200 Y este se va a llamar Poke menos app dos puntos tab enter de pens on. 63 00:03:55,330 --> 00:03:56,470 De qué va a depender esto? 64 00:03:56,470 --> 00:03:58,210 Va a depender de la base de datos. 65 00:03:58,270 --> 00:04:02,350 Enter menos espacio y va a depender también de Mongo Express. 66 00:04:02,380 --> 00:04:08,890 Técnicamente no ocuparía Mount o Express porque son independientes uno de uno del otro, pero voy a 67 00:04:08,890 --> 00:04:12,970 esperarme a que Mongo Express esté terminado y luego pues ir con el siguiente paso. 68 00:04:14,430 --> 00:04:16,950 Qué puertos o qué imagen es la que voy a ocupar. 69 00:04:17,190 --> 00:04:22,230 Yo le recomendaría que así como esté esa estructura, es decir, de Pence, Image, Environment, Sports, 70 00:04:22,230 --> 00:04:24,990 restart, se hagan todas para mantener el mismo estándar. 71 00:04:25,470 --> 00:04:32,010 Sólo es una recomendación, pero no es obligatorio y la imagen que vamos a utilizar es esta De aquí 72 00:04:32,310 --> 00:04:37,980 el nombre de usuario, el nombre de la imagen y el tag que es uno punto 0.0. 73 00:04:38,250 --> 00:04:41,700 Ahí se va a encargar de usarlo basado en la arquitectura correspondiente. 74 00:04:42,100 --> 00:04:45,180 Y probé esto en Windows y en Mac también. 75 00:04:45,450 --> 00:04:46,010 Ya lo hice. 76 00:04:46,020 --> 00:04:48,530 Estas pruebas para que funcione esa parte de las arquitecturas. 77 00:04:49,380 --> 00:04:51,000 En fin, voy a presionar un enter. 78 00:04:51,180 --> 00:04:53,850 Ahora viene una parte interesante que son los Ports. 79 00:04:54,030 --> 00:04:54,870 Qué puerto? 80 00:04:54,870 --> 00:04:55,890 Ese que necesito exponer. 81 00:04:55,940 --> 00:04:59,940 Bueno, yo quiero exponerlo en el puerto 3000 de mi equipo con el puerto 3000 del contenedor, porque 82 00:04:59,940 --> 00:05:03,600 yo sé que el contenedor lo expone porque así dice la documentación, así está el código. 83 00:05:03,840 --> 00:05:07,920 Y quien sea que creó el backend debería decir a mí en qué puerto está corriendo eso? 84 00:05:08,100 --> 00:05:12,060 O bien si es una variable de entorno que especifique la variable de entorno que también está configurada, 85 00:05:12,060 --> 00:05:13,180 pero eso es otra cosa. 86 00:05:13,200 --> 00:05:15,720 No quiero hablar mucho sobre cómo está construida esa aplicación. 87 00:05:16,420 --> 00:05:17,880 Ok, ya tenemos esa parte de los puertos. 88 00:05:17,880 --> 00:05:21,000 Vamos con los Environment Environment. 89 00:05:22,570 --> 00:05:24,550 Si se preguntan cómo hago para que aparezca la ayuda? 90 00:05:24,550 --> 00:05:25,840 Yo presiono control espaciadora. 91 00:05:26,260 --> 00:05:30,550 La variable de entorno me está pidiendo que sea el Overview. 92 00:05:30,620 --> 00:05:34,600 Está pidiendo que sea MongoDB, que básicamente es el servicio de Mongo con el puerto. 93 00:05:34,600 --> 00:05:35,800 27 cero 17. 94 00:05:37,000 --> 00:05:37,770 Los puntos. 95 00:05:37,780 --> 00:05:45,240 Y también me está pidiendo el Divine Time que este Divine debería de ser el mismo Divine que se conecta 96 00:05:45,280 --> 00:05:49,990 con Express porque es el mismo nombre del servidor donde está corriendo la base de datos para la parte 97 00:05:49,990 --> 00:05:51,490 de la cadena de conexión. 98 00:05:51,670 --> 00:05:52,700 Cómo lo pide? 99 00:05:52,840 --> 00:05:56,890 Está pidiéndolo de esta manera con el protocolo, con todo esto. 100 00:05:57,490 --> 00:06:03,040 Control C básicamente es el servicio de Mongo que nosotros ocupamos llamar, solo que aquí es un poquito 101 00:06:03,040 --> 00:06:03,610 diferente. 102 00:06:03,610 --> 00:06:06,010 Porque recuerden, si yo lo dejo así, funcionaría. 103 00:06:06,010 --> 00:06:09,490 Pero mi cadena de conexión de Mongo requiere autenticación. 104 00:06:09,490 --> 00:06:11,500 Entonces tengo que crear la autenticación aquí. 105 00:06:11,770 --> 00:06:13,660 Entonces el protocolo de Mongo DB Está bien. 106 00:06:14,020 --> 00:06:14,800 Luego viene. 107 00:06:15,190 --> 00:06:18,940 Si ustedes acuerdan, déjenme abrir para refrescarle la memoria. 108 00:06:19,150 --> 00:06:20,680 Hace clic derecho aquí Editar. 109 00:06:21,640 --> 00:06:24,280 Se acordarán que era Mongo de las islas. 110 00:06:24,310 --> 00:06:25,950 Nombre de usuario dos puntos. 111 00:06:25,960 --> 00:06:27,220 Password arroba. 112 00:06:27,490 --> 00:06:28,780 El host dos puntos. 113 00:06:28,780 --> 00:06:31,240 Puerto 27 27 cero 17. 114 00:06:31,240 --> 00:06:32,350 Pueden copiarse esto? 115 00:06:33,430 --> 00:06:34,090 Venir aquí. 116 00:06:34,270 --> 00:06:35,020 Ven, helo acá. 117 00:06:35,530 --> 00:06:40,870 Y ahora ocupamos hacer el reemplazo de cada una de estas variables por variables de entorno. 118 00:06:41,260 --> 00:06:43,960 Por ejemplo, empezaríamos con el username. 119 00:06:45,090 --> 00:06:47,130 Que yo sé que el username sería en este caso Strider. 120 00:06:47,130 --> 00:06:49,650 Voy a pegarlo pero tengo que tomarlo de la variable de entorno. 121 00:06:50,190 --> 00:06:51,900 Vamos a hacer lo mismo con el password. 122 00:06:53,450 --> 00:06:54,860 Ups con el password. 123 00:06:54,860 --> 00:06:56,020 Asegurense de dejarlo así. 124 00:06:56,030 --> 00:07:01,160 Mongo debe usar dos puntos, luego viene el password y el host. 125 00:07:01,280 --> 00:07:07,610 Voy a cerrar este aquí y el host no es localhost porque localhost significaría que en la aplicación 126 00:07:07,610 --> 00:07:11,450 que yo estoy montando busque ahí la base de datos y no está en la aplicación que estoy montando. 127 00:07:11,450 --> 00:07:14,420 Está en la red que está creando este Docker con post. 128 00:07:14,720 --> 00:07:17,300 Entonces, qué nombre es Debe o Mongo? 129 00:07:17,300 --> 00:07:18,860 Adivinan cuál de los dos es? 130 00:07:18,890 --> 00:07:25,130 Recuerden, este es el servicio y este es el nombre del contenedor, que a su vez es el nombre del servidor 131 00:07:25,130 --> 00:07:26,870 basado en el DNS que está asignado en la red. 132 00:07:27,420 --> 00:07:30,200 Ok, ese es el nombre de ese servidor. 133 00:07:30,500 --> 00:07:37,550 Entonces nuevamente arroba viene el nombre del servicio y el puerto es el 27 cero 17 que si ustedes 134 00:07:37,550 --> 00:07:41,750 lo lo pusieran corriendo en un puerto independiente, por ejemplo, que ustedes digan en la inicialización 135 00:07:41,750 --> 00:07:46,250 de Mongo voy a ponerlo en un puerto diferente para mayor seguridad o por cualquier otra razón. 136 00:07:46,430 --> 00:07:51,080 Entonces ese puerto sería conveniente ponerlo en una variable de entorno para que los demás contenedores 137 00:07:51,080 --> 00:07:53,390 que dependen de la base de datos también lo sepan. 138 00:07:54,230 --> 00:07:59,980 Y básicamente eso sería la parte Voy a colocar visitor always start always. 139 00:08:00,590 --> 00:08:03,470 Voy a grabar los cambios y esto es básicamente todo. 140 00:08:04,400 --> 00:08:09,740 Ok, voy a regresar la terminal, voy a asegurarme de que lo haya bajado, que no tenga nada y ahora 141 00:08:09,980 --> 00:08:16,550 tengo que con post hop menos de presionemos enter y dejen que esto nuevamente empiece a realizar La 142 00:08:16,550 --> 00:08:22,070 magia va a ser una descarga de 100 megas más o menos que eso es lo que termina creando la aplicación 143 00:08:22,070 --> 00:08:22,360 final. 144 00:08:22,370 --> 00:08:28,820 Pero recuerden que la aplicación final que nosotros tenemos aquí, esta aplicación ya tiene todas las 145 00:08:28,820 --> 00:08:29,510 conexiones. 146 00:08:29,510 --> 00:08:35,360 Ups, aquí escribí mal, algo me dice error, invalide restart, pal dice always, lo escribí mal, 147 00:08:35,750 --> 00:08:39,830 always always ok, vamos de nuevo flecha de arriba, lo vamos a hacer. 148 00:08:39,830 --> 00:08:45,020 Recuerden lean los errores y ya se levantó todo súper rápido porque ya había descargado la imagen y 149 00:08:45,020 --> 00:08:46,280 simplemente se ejecuta el proceso. 150 00:08:46,820 --> 00:08:49,010 Regresamos a la terminal del navegador web. 151 00:08:49,990 --> 00:08:50,900 Puedo recargar aquí? 152 00:08:50,920 --> 00:08:59,170 Van a ver que aquí aparece Pokemon Dive porque apareció Pokémon automáticamente, porque también la 153 00:08:59,170 --> 00:09:01,120 aplicación está conectándose ahí. 154 00:09:01,620 --> 00:09:02,950 Ok, ya vamos a ver cómo funciona. 155 00:09:03,160 --> 00:09:07,630 Y si regresamos a la documentación dice que puedo probar el localhost 3000 con el API Sid. 156 00:09:07,660 --> 00:09:10,300 Es decir, podemos abrir esto y vamos a ver qué dice. 157 00:09:10,300 --> 00:09:11,260 Si execute. 158 00:09:11,440 --> 00:09:12,790 Esto es mi aplicación. 159 00:09:12,790 --> 00:09:13,490 Es la aplicación. 160 00:09:13,510 --> 00:09:14,830 Es más, si ustedes borran todo esto. 161 00:09:15,980 --> 00:09:16,520 Presiona Enter. 162 00:09:16,610 --> 00:09:22,460 Van a ver que dice que no hay ningún directorio en user publica, es decir, no hay ningún archivo ahí. 163 00:09:22,460 --> 00:09:25,130 Si yo pusiera un index html, eso es lo que se va a mostrar. 164 00:09:25,400 --> 00:09:29,450 Pero obviamente no quiero hablar de la aplicación de Inés que está creada. 165 00:09:30,050 --> 00:09:34,520 Cierro y si yo hago clic en el segundo enlace, siempre y cuando ustedes lo tengan en el mismo puerto 166 00:09:34,520 --> 00:09:43,400 3000 van a ver que aquí tenemos información de 20 pokémons basado en el offset quiero 20 y que me muestre 167 00:09:43,880 --> 00:09:46,130 los siguientes 40 después de los primeros 40. 168 00:09:46,970 --> 00:09:48,710 Básicamente ahí tenemos nuestros pokemones. 169 00:09:49,070 --> 00:09:53,150 También puedo venir aquí y decir que solo quiero el límite. 170 00:09:53,420 --> 00:09:59,860 Voy a poner que muestre 151 que no creo que haya metido 151 no me acuerdo y voy a irme al final y deberíamos 171 00:09:59,880 --> 00:10:02,540 detener todos esos pokémons porque hasta ahí está. 172 00:10:02,900 --> 00:10:09,680 No sé cuántos pokemon cargué en la aplicación, creo que fueron solo 150 o 151, y eso es todo. 173 00:10:09,680 --> 00:10:14,600 Pero en este momento quiero que ustedes analicen qué es lo que está pasando en nuestra computadora con 174 00:10:14,600 --> 00:10:15,800 un único comando. 175 00:10:16,730 --> 00:10:22,130 Con este único comando estamos configurando la base de datos, una manera de poder acceder a ella, 176 00:10:22,130 --> 00:10:26,540 y también estamos montando nuestra aplicación, que está basado en una imagen y una versión específica 177 00:10:26,540 --> 00:10:27,680 de nuestra aplicación. 178 00:10:27,890 --> 00:10:31,730 Si el buque sufriera algún cambio, por ejemplo, nuestra aplicación de Pokemon, ahora tenemos que 179 00:10:31,730 --> 00:10:35,060 montar la versión dos, tres o cuatro, o montar una nueva versión. 180 00:10:35,060 --> 00:10:39,860 Un parche, un parche, digamos el parche 123 o cuatro, un bug fix o lo que ustedes quieran. 181 00:10:40,160 --> 00:10:44,000 Rápidamente podemos hacer esto muy sencillo, muy rápido. 182 00:10:44,000 --> 00:10:48,470 Y si por alguna razón la siguiente versión de Yo problemas también es muy fácil regresarse y revertir 183 00:10:48,470 --> 00:10:53,030 los cambios porque ya tendríamos nuestra nuestra imagen implementada. 184 00:10:53,120 --> 00:10:55,130 Es decir, tenemos nuestro historial y todo lo demás. 185 00:10:55,340 --> 00:10:59,690 Recuerden que para que ustedes puedan acceder a mi repositorio, a este que ustedes están viendo, este 186 00:10:59,690 --> 00:11:03,020 repositorio es público, es decir, esta imagen que está aquí es pública. 187 00:11:03,290 --> 00:11:07,700 Si ustedes la hicieran privada, entonces tienen que tener otro tipo de credenciales para poder acceder 188 00:11:07,700 --> 00:11:10,100 a ella, y eso es algo que vamos a ver después. 189 00:11:10,220 --> 00:11:10,450 Ok? 190 00:11:11,210 --> 00:11:11,690 Por ahora. 191 00:11:11,690 --> 00:11:14,600 Por ahora, siéntanse orgullosos de todo lo que acabamos de hacer. 192 00:11:14,600 --> 00:11:19,430 Juntos montamos la aplicación, montamos bases de datos, montamos formas para revisar la base de datos, 193 00:11:19,430 --> 00:11:25,340 que por cierto podríamos analizarlo si ustedes se van a localhost en el 80 80. 194 00:11:27,600 --> 00:11:27,740 Qué? 195 00:11:27,750 --> 00:11:28,080 80? 196 00:11:28,080 --> 00:11:28,560 80? 197 00:11:29,040 --> 00:11:31,110 Van a ver que aquí tenemos la parte de Pokémon de B. 198 00:11:31,710 --> 00:11:36,330 Puedo ir a ver la información de esta de esta colección de Pokémon? 199 00:11:36,330 --> 00:11:36,840 Si, ahí están. 200 00:11:37,260 --> 00:11:42,810 Podemos ir analizando todos los pokemones, como están, sus ideas, etcétera, etcétera Hacer conteos, 201 00:11:43,290 --> 00:11:48,050 ver como está la base de datos y efectivamente ahí lo tenemos. 202 00:11:48,060 --> 00:11:50,040 Sus ideas de Mongo puedo borrar o puede editar. 203 00:11:50,100 --> 00:11:52,470 Recuerden, ahí están, son 650 documentos. 204 00:11:52,470 --> 00:11:53,940 Parece que eso es lo que tenemos ahí. 205 00:11:54,690 --> 00:11:55,440 Fenomenal. 206 00:11:55,470 --> 00:11:57,180 Dejemos esto hasta este punto. 207 00:11:57,360 --> 00:12:02,760 Les voy a dejar también en la siguiente clase el archivo terminado este Docker Compact Channel para 208 00:12:02,760 --> 00:12:04,770 que ustedes simplemente lo guarden y lo ejecuten. 209 00:12:05,100 --> 00:12:10,020 Y vamos a empezar a trabajar en las próximas clases creando nuestras imágenes, porque hay muchas consideraciones 210 00:12:10,020 --> 00:12:14,700 interesantes que hacer ahí y muchas personas también están esperando llegar a esa parte del perfil. 211 00:12:15,090 --> 00:12:18,510 Ok, espero les haya gustado esta sección y nos vemos en el siguiente video.
Compartir