Recuerden hacer el Docker con pose down.
Ups!
Pero escribimos bien.
Perfecto.
Y también pueden hacer el down menos menos valiums para asegurarnos de que todo sea purgado.
Técnicamente, lo que nosotros tenemos que hacer aquí es bien sencillo.
Sólo tendríamos que tomar cambiar esta variable entorno por Port Approach y en la parte de el target
usar esa variable de entorno que era stage, era stage.
Y ponerlo acá.
Y técnicamente, eso es todo.
Pero en nuestro código o en el código que yo le facilité.
Hay una parte de donde esto está activado, que es la configuración de SSL.
Esto es porque yo desplegué en el curso de NET, yo lo desplegué a una base de datos pobres en la nube
que tiene configurado el SSL y había que activarlo si estábamos en producción en desarrollo.
Esto no es necesario porque la base de datos que tenemos corriendo en el contenedor no viene con SSL.
En fin, esto es algo de prueba y error, pero en fin, no, ese es el punto.
Con esto bastaría y más que suficiente.
Ya está, ya.
Ahora con que aquí diga cuando vaya a nuestro Docker file y empiece a hacer el procedimiento, entonces
va a crear cada uno de los pasos que ya habíamos visto anteriormente.
El inconveniente que tenemos aquí es que yo no voy a crear este volumen y ese es el problema, porque
cuando yo haga el bit de producción, yo no necesito ni siquiera los módulos de no de forma anónima
ni ni tampoco necesito el mapeo del bin Valium de mi hijo, de mi código fuente con este.
Y aquí ya viene un problema que nos puede dar resultados inesperados.
Puede que tengamos módulos de.
Net que tienen que recargarse o tengamos cambios que afecten el contenido de la aplicación, porque
recuerden que al final, bueno, que la verdad es que estamos sólo moviendo el.
En este caso no va a ser tan tan destructivo, pero puede haber un caso en el cual sí esto sea un problema.
La cosa está de que nosotros ocupamos de alguna manera condicionar este punto.
Ahora hay varias formas de hacer condiciones, pero desafortunadamente en el Docker compost no hay una
manera de decir si estoy en pro, no ejecutes esto.
Hay varias formas en ciertos comandos.
De hecho, yo les dejo a ustedes en el material adjunto un enlace que los lleva a esta documentación.
Pero esto es para Shell Commons.
Ok, eso es para ser commands, lo cual es bastante útil y ustedes lo van a ver allá afuera en los archivos
que van a ver o en comando.
Si ustedes van a ver The Shell Commands.
Es decir, van a haber instrucciones que ustedes lo van a necesitar.
Por eso se los dejo aquí como una documentación extra.
Pero técnicamente no podemos poner esto condicionalmente, pero también en el material adjunto.
Yo les dejo a ustedes otro enlace que los lleva a la parte de lo que puse en producción y van a ver
que aquí hay un comando interesante Docker Compass y podemos especificar esos campos y f production
llamo este código es algo extraño o este comando es algo extraño?
El primero dice cual es la base básicamente de lo que Compass es decir, toma este post y este otro
que es production.
Esto es únicamente las configuraciones adicionales que nosotros vamos a ocupar para sobrescribir lo
que tengamos aquí.
Técnicamente, esto funciona y obviamente está bien, pero a mí no me gusta.
En lo personal, no me gusta hacer esto porque tiende a ser algo confuso.
Entonces, que es la solución que yo propongo?
Si ustedes se fijaron en el honor que yo les pasé hace rato o que ya venía en el proyecto, teníamos
este Docker Compost Project llamo, el cual usa la sintaxis para que claramente indica de que esto es
para producción.
Entonces vamos a hacer lo siguiente Compense control C control B el Docker con pocos puntos y van a
poner punto por punto llamo.
Y ahora vamos a quitar todo lo que realmente no necesitamos para el Bill de producción, que técnicamente
van a ser los volúmenes de aquí y la parte de los volúmenes de la base de datos.
Esto podría ser necesario en el caso de que ustedes ya quieran conectarlo con una base de datos externa.
Pronto vamos a ver esta parte de los despliegues ok, a un hosting externo, no localmente, pero bueno,
básicamente yo sé que este es el de PRO.
No necesito esta variable de entorno de stage.
Podríamos dejarlo como siempre, pero queda mucho su discreción, porque está bien que use las variables
de entorno para así asegurarnos de que hay esto puede ser que esté en el stage, por ejemplo, o esté
en alguna etapa.
Por ejemplo está el development, está el testing, puede estar el staging, por ejemplo, que esto
es que está casi in producción, es una prueba bastante fidedigna.
Entonces ustedes pueden tener varias variables de entorno y quieren ustedes probar ese staging basado
en la parte de producción, por lo cual aquí siempre es bueno que dejemos el stage, pero esto queda
mucho a su discreción.
Todo lo demás lo podemos dejar igual, pero solo removí el volumen y grabo los cambios.
Voy a cerrar todo.
Y regresamos a la terminal.
Ahora, si ustedes se fijan en el material que está ahí, podemos hacer Docker con post menos F y vamos
a especificar únicamente el archivo que nos interesa de producción.
En este caso sería Voy a pegar el comando Docker F y aquí sería en el file, punto, punto, llamo,
voy a presionar enter y se me olvidó poner el hop down o lo que yo quiera hacer.
Entonces el nuevo flecha de arriba up no le voy a poner el tag porque necesito que se mira aquí tengo
que Compass, Docker, Composer, Proteus.
Presionamos Enter y bueno, aquí ya lo hizo todo, pero déjeme cancelar esto, borrarlo y hagamos eso.
Lo levanta?
Si ya lo tenía.
Pues lo hace todo bien.
Pero en un caso ya tenía los layers escritos.
Podemos hacer el build de nuevo.
Voy a presionar.
Dejen que esto empieza a crear todo y van a ver que aquí ya tenemos las etapas en las cuales estaba
en producción de dependencias, Dependencias Builder Project, que es el paso de copiar las carpetas
de distribución y ya nos crea nuestra imagen.
Y ahora si nosotros hacemos el Docker compost up, presiono enter rápidamente, ya monté la aplicación
y todo está trabajando súper súper genial.
Cancelemos esto y hagamos un Docker Image ls y van a ver que aquí posiblemente ustedes van a tener un
montón de.
No, no, no en su repositorio.
Nada, nada, nada.
Un montón de cosas raras.
Esto yo lo creé.
Pero vamos a ver que tenemos esto sin nombre.
No creen ustedes que también sería genial que lo que nos ayudara a ayudara con los tags?
Porque es algo que yo necesito, ocupo subirlo, qué sé yo.
Entonces voy a venir aquí en video que compuse y justo arriba, justo debajo del Bill.
Si quieren aquí lo podemos colocar.
Podemos escribir un image.
Por favor vayan a poner su usuario de Docker Hook, seguido del nombre que ustedes quieren darle a esta
imagen.
Voy a poner aquí texto Shop App.
Hoy vamos a poner nada más esto Shop y Shop, pongámosle backend.
Usted lo sabe.
Sí.
Está bien.
Voy a dejarlo así.
Graben los cambios en sus dos grupos.
También este paso.
Quiero que ustedes noten que como nosotros estamos ejecutando el comando de Docker compost, esto no
es tan común.
O sea, esto no es tan solo ejecutar un comando.
Esto tiene una cierta configuración y esto sería.
Voy a poner aquí nuevamente el build y esto es un paso que yo voy a notar en mi readme.
Todo esto que está aquí siempre es una buena práctica que ustedes le digan a otras personas cuando estamos
en la parte de producción ejecutar este comando.
Entonces tocan compost y especificamos el archivo de producción.
Y la ventaja es que ustedes pueden especificar o este Docker compost pro puede especificar a otros archivos
o shell commands, entre otras cosas.
Ok, voy a regresar aquí y ahora miremos qué pasó con ese nuevo Dock y Mac LS y van a ver que por aquí
vamos a tener nuestro.
Vamos a tener nuestro test shop.
Aquí está.
Sale que hace 46 minutos lo creé, pero es porque yo he hecho cortes en los videos, o sea, he trabajado
en varias cosas, pero ahí tenemos nuestro testeo shop y como no le pusimos un tag, le puso Lays.
Eso significaría que aquí ustedes pueden cambiar esa imagen, pueden cambiar lo que ustedes necesiten
por otros tags o perfectamente pueden venir aquí y digamos que este va a ser el tag dos punto 0.0.
Ya ves los cambios.
Regresemos a la terminal.
Fecha, dirección de arriba un par de veces.
Hagamos el viaje de nuevo.
Estás haciendo el Yang Bill.
Esperemos un segundo.
Ok.
Limpio arriba LS.
Y aquí tenemos el 2.0 que a pesar de que lo acabo de hacer hace 47 minutos porque realmente es la misma
imagen, super super genial.
Hay varias cosas que van relacionadas a este paso.
Recuerden que siempre es buena práctica.
Por cierto, si ustedes van a la documentación que yo les dejé, que hace rato no tocamos por aquí,
hay una recomendación que está acá.
Ustedes pueden hacer el Docker Compass Build no cash para asegurarse de que estén de vez en cuando construyendo
nuevamente las imágenes en el caso de que así lo necesiten.
Ok.
Ahora hay otro punto en lo personal que tiende a ser algo confuso.
Técnicamente, ustedes pueden subir este Docker compost field y usar un Swarm para montar las dos cosas
de una sola vez.
Pero muchas veces ustedes solo van a querer construir su aplicación.
Por lo menos la parte que ustedes hicieron.
Que sería todo esto?
Ok, toda esta aplicación es lo que ustedes quieren construir.
Estoy aquí.
Y me van a decir y qué pasa con la base de datos?
Porque la base de datos no, porque esta es la imagen base de la base de datos.
Yo simplemente no tomaría esta imagen, sino tomaría la imagen que viene de Docker.
Oop.
Por qué?
O la que me ofrezca postres?
Porque la verdad es que yo no estoy haciendo ninguna configuración aquí.
No hay nada de código personalizado mío.
Aquí, a eso es a lo que quiero ir, exceptuando tal vez el password, pero eso viene como variable
de entorno.
Pero a lo que voy es que no estamos usando ningún context, No estoy creando nada, simplemente estoy
usando la imagen base de postres.
Entonces no tiene mucho sentido construir también todo esto junto en el mismo paquete.
Además, recuerden que es considerado una buena práctica que nuestros contenedores sean autosuficientes
y realicen una tarea en específico.
Lo genial del toque con Mouse es que yo específicamente puedo decirle que construya un servicio en particular,
que en este caso sería Vamos a ponerle un par de cambios para que ustedes lo noten.
Por ejemplo, voy a ponerle aquí 2.5, voy a grabar los cambios aquí y noten que el servicio se llama
APP.
Entonces en la terminal voy a poner app nada más dos que como pose pro app y ese es el beagle específico
del servicio que yo necesito construir.
Ok, limpio Docker y Match LS y ahí tenemos el 2.5.
Posiblemente más de uno va a decir, pero no está la base de datos ingresada o interna ahí.
No, nunca lo estuvo, porque recuerden que como tenemos una imagen base, está usando esa imagen base
de la base de datos.
No estaba siendo parte de esta imagen que nosotros tenemos aquí.
Esto es puramente nuestro código personalizado.
Perfecto.
Vamos a dejarlo hasta ese punto.
Si ustedes quieren, pueden subir esto.
No hay nada más que Docker push seguido ese nombre y el tag.
Si ustedes quieren el aire o el tag que ustedes crearon.
Y básicamente con esto era lo que quería llegar con la construcción de nuestros Docker Files.
Todavía más cosas que quiero hacer.
Hay otros despliegues que quiero realizar también, pero poco a poco en la siguiente sección.
Por ahora dejémoslo hasta este punto y mi código fuente de bueno de todo este proyecto se los voy a
dejar en el material de la próxima clase.
Un enlace a GitHub para que puedan confirmar tanto el Docker que llamo y también para que puedan confirmar
el Docker compost post.
Espero que esta sección haya sido de mucho interés y nos vemos en la siguiente sección.