en Desarrollo, Docker

Montar MongoDB en un container para pruebas rápidas de backend en NodeJS

¿Te ha pasado que cambias a otra computadora donde no tienes tu entorno de desarrollo instalado y ocupas hacer una prueba rápida de un cambio?

El contexto de este blog es precisamente ese. Me ha pasado que en mi computadora de desarrollo, usualmente, tengo instalado un servicio de MongoDB corriendo para desarrollo de backend con NodeJS, ya que es lo más usual. Sin embargo, uno de estos días quería hacer una prueba rápida de un cambio que tenía que hacer. Lo tuve que hacer en otra computadora y no tenía MongoDB instalado.

Mi setup tenía Ubuntu 18.04 e instalar MongoDB no es tan simple como hacer un apt install mongodb. Los repositorios de apt suelen tener una versión vieja y no sirve. Tenía mucha precisa y realmente no tenía tiempo para instalar. Sin embargo, tenía docker instalado.

Lo que hice fue simplemente montar un container:

docker run --name MyMongoDBServer -p 27017:27017 -d --restart=always mongo:latest
  • --name MyMongoDBServer: es el nombre de mi container
  • -p 27017:27017: mapear el puerto 27017 del container al 27017 del host
  • -d: corra en background
  • --restart=always: que se levante en caso de una caída
  • mongo:latest: la image del container a usar. Se usa la última versión

Esto lo que me permite es montar un container con MongoDB corriendo en él y daemonizado (ejecutando el servicio), con el puerto expuesto en el default (27017) y, que, siempre se levante si hay una caída. Esto es suficiente para que mi aplicación se conecte a MongoDB en localhost:27017.

Si quiero usar el cliente de MongoDB:

docker exec -it MyMongoDBServer mongo

Eso me permite acceder al cliente de MongoDB mediante el CLI. Se pueden correr otros comandos igualmente, pero tiene que ser dentro del container:

docker exec -it MyMongoDBServer <COMANDO>

Si por alguna razón, tu container está desconectado, puedes levantarlo con:

docker container start MyMongoDBServer

Espero que esto te sirva a salir del apuro, como a mí. Esta idea puede ser aplicada para otros tipos de dependencias y bases de datos sin ningún problema. Sólo hay que ver las configuraciones por default. Como siempre, es bueno leer la documentación del container.

Escribe un comentario

Comentario