No sé.
Ok?
En la clase anterior nosotros creamos esta imagen de modo y la montamos en un contenedor.
Bueno, no la creamos.
Simplemente estamos utilizándola.
La descargamos, la montamos, exponemos el puerto 27 cero Seventeen y hacemos la publicación del mismo
para que podamos conectarnos a ella desde nuestra máquina.
Ok, pero hay ciertas cosas que yo quiero hacer.
Una de ellas es obligar a que las conexiones hacia esta base de datos estén autenticados con un usuario.
Hay varias formas de hacer esto y es algo propio de Mongo, pero les va a enseñar a ustedes como si
hay ciertas configuraciones, porque muchas imágenes que están allá afuera trabajan de una manera similar.
Entonces voy a hacer esto usando variables de entorno.
Si ustedes se van a la documentación oficial de la imagen de Mongo y buscan out, es decir, a u th.
Van a ver qué por aquí podemos mandar este comando o ejecutar el comando de menos menos out cuando se
levanta la base de datos con el mongo de out.
Y esto va a ser que ocupemos una autenticación para hacer algún tipo de consulta a la base de datos.
Podemos crearnos usuarios, podemos cambiarle las credenciales al usuario por defecto.
En este caso podemos ponerle mongo inicial, root use username.
En este caso le puso mongo admin y mongo init, root, password y la contraseña.
Entonces podemos hacer esto mediante variables de entorno y este comando lo podemos ejecutar también
todo desde el doctor Compus File que es excelente.
Entonces comencemos.
Usamos esta variable de entorno.
Voy a copiar.
Puedo copiar todo esto.
Control, sé.
Voy a venir aquí.
No importa en qué parte ustedes lo pongan.
Este comando a la variable de entorno con tal está en el nivel correcto.
Eso no va a haber ningún inconveniente.
Entonces voy a escribir Environment Tab y van a ver que aquí me auto completa algo.
Puedo hacerlo así Name y seguido de cualquier.
Bueno, en este caso ya tiene ese nombre y ya lo voy a cambiar.
Podemos hacerlo de esta manera perfectamente.
O bien tenemos otra forma que es que lo coloquemos de esta.
De esta manera también es permitido.
Es decir, esta es la variable de entorno y esta sería el valor de la variable de entorno.
Voy a clonar esta línea y voy a hacer lo mismo con la otra.
Ok y ya lo tenemos mongo initial, root password.
Recuerden, estos son nombres de variables de entorno que están definidas en el contenedor.
Yo tengo que respetar lo que sea, si lo quiero usar, tengo que usar ese nombre de la variable de entorno
que se definió mediante la gente que creó la imagen de Mongo.
Ok, viene un punto importante.
Si yo quiero forzar la autenticación y usarla, tengo que mandar aquí el menos out.
Pero dónde?
Bueno, básicamente ejecutar mongo de menu out.
Pero en dónde hago eso?
Nosotros podemos ejecutarlo de varias maneras.
Después de que se levanta la base de datos, podríamos entrar al contenedor y ejecutar ese comando con
la terminal interactiva usando el bash y hacer esa modificación.
Pero también puedo hacerlo mediante un comando.
Este comando podemos especificarlo basado en una serie de comandos.
Podemos hacerlo así o x cantidad de manera ustedes pueden hacer para ejecutar estos comandos, pero
es bien común que lo miren de esta manera.
Voy a grabar los cambios.
Esto le dice que cuando se monta la imagen ejecuta este comando menos, menos out y ya vas a ver qué
hacer.
Ok, ya tenemos esa parte.
Voy a grabar los cambios.
Recuerden de nuevo que nuestra base de datos ya se montó en la clase anterior y utilizamos el volumen
que el volumen ya tiene la configuración inicial de la base de datos.
Entonces, de alguna manera nosotros vamos a tener que cambiar ciertas cosas aquí.
Ahora vamos a hacer algo interesante.
Voy a escribir aquí un usuario que va a ser Fernando y la contraseña va a ser del uno al seis.
Pueden poner su nombre, pueden poner lo que ustedes desean.
Ok, voy a grabar los cambios.
Eso.
Eso es todo lo que acabamos de hacer en estas modificaciones grandes en los cambios.
Regresemos a la terminal y ejecutemos el Docker con post down en el caso que ustedes lo tengan arriba,
hagamos el down y ya está removido.
Ahora vamos a ver qué pasa si yo hago el docker con post up menos de para que lo haga de manera di touch.
Presionamos Enter.
Entonces crea la red que a pesar de que solo es un contenedor igual que era la red y también crea el
container Pokémon de OK.
Si nosotros regresamos por ejemplo a Docker de esto vamos a ver aquí la aplicación está corriendo rápidamente.
Si ustedes quieren analizar los logs pueden hacer click acá y tenemos los logs.
Vamos a ver qué pasa si yo me intento conectar.
Ok.
Voy a editar la conexión anterior.
Y tenemos aquí Mongo de Local House 27 cero 17 que esto fue lo que nosotros hicimos.
Eso está bien.
Si yo hago el test, va a funcionar igual.
Siempre va a funcionar.
Ok?
Siempre va a funcionar.
Ningún problema.
Voy a darle conectar.
Nos conectamos.
Y ahora, aquí viene la parte interesante.
Hagan click en este botón que dice Abrir una base de datos, que aquí es donde nosotros vamos a ver
el listado de los de la base de datos que teníamos, la local y las demás, y al hacer clic aquí me
va a tirar un error y me dice que el comando de listar las bases de datos requiere autenticación.
Ah, ok, está bien, cerremos, ya no vemos nada y no puedo trabajar con nada.
Entonces voy a presionar control doble o comando para cerrarlo y voy a hacer clic derecho en Editar
la conexión en modo de ver si yo quiero autenticar, me lo puedo hacer mediante el URL.
Hay varias formas de hacerlo, pero voy a ponerlo mediante el URL.
Y 1/1 es el nombre del usuario que yo sé que yo le puse Strider, no le puse Fernando Fernán es Fernando
y eso yo lo sé porque en aquí lo escribí Fernando todo en minúscula y la contraseña era del uno al seis,
entonces después viene dos puntos del uno al seis arroba o at el local y todo lo demás.
Si yo hago el test de conexión me va a decir que la autenticación falló.
Pero qué raro.
Yo estoy seguro que este es el usuario y estoy seguro de que esta es la contraseña.
O sea, yo estoy seguro, pero porque no me funciona.
Y esos son errores bien comunes en los cuales ustedes se van a enfrentar cuando tienen volúmenes y ya
han inicializado esto una vez.
Para nuestra suerte, el comando si se aplicó correctamente de la autenticación, pero nuestro usuario
inicial y la contraseña no se están aplicando porque esto es algo que se ejecuta cuando se inicializa
la base de datos y nuestra base de datos ya estaba inicializada en el video anterior.
Que inicializamos.
Entonces que es lo que tenemos que hacer?
Voy a regresarme a la terminal o también se puede hacer directamente desde Lockers Desktop?
Voy a hacer Docker con pose down.
Recuerden el down y el UP.
No van a hacer mucho para nuestro ejercicio.
Si yo intento nuevamente toco test, van a ver que todavía sigue sin funcionar la autenticación, porque
esto es como que detuviéramos o moviéramos el contenedor, pero la base de datos sigue estando en nuestro
volumen.
Entonces nuevamente vamos a bajarlo.
Si yo hago un Docker volume ls, van a ver que aquí ya tenemos el volumen de esa.
Decido crear un post con post, recuerden es el nombre del proyecto y luego viene el nombre del volumen.
Vamos a eliminarlo.
Volume RM menos CF en el caso que se quiera eliminar forzado, pero igual no se está utilizando.
Y voy a borrar ese volumen.
Ahora sí, volvamos a levantar nuestro toque con pose UV.
Menos de se crean ambos.
Inclusive aquí van a ver que dice que también se creó el volumen.
Eso es una buena señal.
Voy a revisar a Table Plus.
La cadena de conexión es esta voy a darle test y ahora sí funcionó nuevamente porque la base de datos
ya esta es la primera vez que se inicializa y a configurar usuario.
Si ustedes lo bajan y lo vuelven a subir ya van a ver que eso es lo que sucedió.
Ahí voy a darle conectar, voy a intentar listar las bases de datos y ahora sí las puedo observar admin,
config y local.
Ok, voy a cancelarlo.
No hay mucho que yo pueda hacer aquí.
Porque aunque ustedes vengan y hagan clic en Crear una nueva base de datos, todavía no lo soporta.
Y por eso es que también vamos a usar Mondo Express.
Entonces cancelemos esto.
Cerremos esto.
Esta cadena de conexión aquí la podemos borrar.
Y ahora viene el otro punto importante de nuestro título del video, que tal vez ustedes lo vieron que
era la forma de conectar nuestra variable de entorno.
Técnicamente no está mal si ustedes lo dejan de esta manera.
Lo que pasa es que van a darle las credenciales a todo el mundo y va a ser muy difícil, porque el Docker
compost es un archivo que usualmente también ustedes lo suben a su proyecto para que la gente sepa como
iniciarlo, como arrancarlo e inclusive como construirlo.
En fin.
Pero usualmente no van a querer estas variables de entorno o bien este nombre de la base de datos es
algo que yo voy a ocupar en varios otros pasos.
Por ejemplo, cuando yo quiera conectarme a un express me va a pedir cuál es el nombre del servicio?
El nombre del servicio básicamente sería este de aquí.
Y luego tenemos que nuestra aplicación va a requerir la cadena de conexión de Mongo y nosotros no vamos
a poner localhost aquí o no vamos a poner local host en la aplicación.
Tenemos que poner el nombre de donde está el servicio de Mongo.
Y entonces también voy a ocupar este mismo nombre un montón de veces en este tipo de casos.
Entonces lo que prefiero hacer es crearme unas variables de entorno que nos permitan a nosotros manejar
esto más fácilmente y también poder editarlo.
Simplemente cambiar el entorno y usar el mismo archivo para ya sea crearlo para hacer el modo producción,
es decir, para hacer todo más fácilmente.
De aquí únicamente cambiar esas variables.
Voy a crearme una variable que se va a llamar mongo y un bajo y username o el nombre que ustedes quieran
darle.
Y aquí le voy a poner Strider o cualquier nombre que ustedes quieran Mongo y un bajo password, que
esto me lo estoy definiendo en este momento y la contraseña va a ser del uno al nueve solo para que
miren la diferencia.
Y también voy a crear crearme aquí el mongo guion bajo DB y un bajo name que va a ser igual a Pokemon.
Voy a ponerle Pokémon de V solo para que quede bien claro de esta manera y grabo los cambios.
Estas son mis variables de entorno si yo quiero utilizar estas variables de entorno.
Puede utilizarlas en cualquier parte de este archivo, es decir, inclusive en el nombre del contenedor.
El nombre del contenedor quiero que tenga el mismo nombre de la base de datos.
Ok.
En este caso, si quiere, ustedes podrían ponerle.
Tal vez sólo debe.
Para que se mire diferente.
Para que no miren el guión bajo.
Pero vamos a hacerlo así.
Entonces voy a copiarme el Mongo de Benin y lo voy a pegar acá.
Pero no es solo ponerlo de esta manera, tengo que envolverlo entre llaves y poner el símbolo de dólar.
No pongan espacios aquí porque técnicamente estarían diciendo de que están buscando una variable entorno
que tenga un espacio adicional, pero esto no se hace y no le va a funcionar, tiene que estar pegados
de esta manera.
Entonces el símbolo de dólar y viene en modo adivinan?
Vamos a ver con la parte del problema, eso está bien.
Inclusive pueden hacer lo mismo con los puertos Start always y vamos con estas dos variables de entorno
que sería el ius n y el password.
Es exactamente lo mismo.
Lo que yo tengo que hacer acá llaves, símbolo de dólar.
Voy a grabar los cambios, voy a regresar a la terminal.
Cancelemos esto.
Hagamos el docker con pose down.
Bajamos esto.
Doctor Valium.
Ls voy a hacer.
Que puedo hacer?
El.
Universal y griega que se borra y también se borra este otro.
Hagamos el docker con post up menos de asegurense que diga que se creó nuevamente el volumen.
Esto es importante porque significaría que si esto no se crea, va a estar usando la configuración del
usuario anterior.
Entonces voy a venir nuevamente a Table Plus.
No sé para que borrar la conexión.
Voy a hacerlo de nuevo.
Voy a ponerle Mongo o Poke o algo así.
Mongo de dos puntos.
Slash, Slash viene el nombre de usuario.
En este caso sería Strider.
Dos puntos.
La contraseña del uno al nueve auth local host.
Dos puntos en el puerto 27 cero 17.
Voy a darle a probar la conexión.
Y funcionó.
Ok.
Si yo intento usar la conexión anterior, por ejemplo, Fernando, ir a la contraseña del uno al seis.
Hago el test.
Esta contraseña no existe ni el usuario.
Entonces ven que interesante Strider y aquí era de de el uno nueve test ooops algo esquimal Strider
Strider del uno nueve y ahora si esta bien ok, voy a cerrarlo y ya tenemos 1/1 y aprendimos como ejecutar
variables de o utilizar variables de entorno en nuestro el compus file, lo cual es bastante bastante
util.
Nuevamente con ustedes tengan el mismo nombre en uno o dos lugares y saben que tiene que o sea es el
mismo nombre que usted va a usar en diferentes lugares.
Crean una variable de entorno y muchas personas se van a ver beneficiadas de esto.
Ahora si nos vamos a el lockers de stock aqui todavía sigue llamándose guion bajo de V, porque se me
olvidó, se me olvidó grabar los cambios en el archivo de variables de entorno.
Entonces nuevamente, antes de terminar la clase voy a volverlo a hacer, voy a bajar los post down,
vamos a borrar todo.
Y agrega Docker con post up menos de Me aseguro de que se creó esto y deberíamos de ver que ahora si
dice Pokemon div en el nombre del contenedor.
Ok, eso era todo.
Asegúrese de que esté funcionando, que tengan esto arriba y continuamos con el siguiente video.