Ratnopam Chakrabarti es un desarrollador de software que trabaja actualmente para Ericsson Inc. Lleva bastante tiempo centrado en IoT, tecnologías máquina a máquina, coches conectados y dominios de ciudades inteligentes. Le encanta aprender nuevas tecnologías y ponerlas en práctica. Cuando no está trabajando, le gusta pasar tiempo con su hijo de 3 años.
Aunque ejecutar la aplicación Node localmente es divertido, aún requiere todas las precauciones de instalar los softwares prerrequisitos como Couchbase, etc. en el sistema local. Una alternativa es utilizar Docker para contenerizar la aplicación y ejecutarla como una imagen empaquetada. Lo mismo se puede hacer con el contenedor de Couchbase, por lo que no tenemos que instalarlo localmente.
Ejecutar imagen personalizada de Couchbase
Para ejecutar Couchbase utilizando Docker, consulte la imagen personalizada de Couchbase Dockerfile. Hace uso de un script que se puede encontrar aquí.
La razón por la que no estoy usando la imagen base de Couchbase es porque quiero preconfigurar mi instancia de Couchbase con servicios de índice y consulta y también crear un bucket llamado "photogallery" con un índice primario creado en él. Si utilizara la imagen Docker base de Couchbase, tendría que configurar manualmente todos los pasos mencionados anteriormente. Una de las ventajas de usar Docker es que puedes extender desde una imagen base y hacer todo tipo de pasos de automatización según tus necesidades. Esto se consigue mediante el script (configure.sh) mencionado anteriormente. Una vez que la imagen está en funcionamiento, se obtiene una instancia de Couchbase con el índice y el servicio de consulta ya en funcionamiento, y un cubo en su lugar con un índice colocado en él.
El script configura el servicio Couchbase, crea el bucket y el índice de una sola vez.
La imagen se puede crear utilizando:
1 |
docker construya -t chakrar27/couchbase:fotogalería <ruta-a-Dockerfile> |
Una vez construida la imagen, ejecútala utilizando:
1 |
docker ejecute -d -p 8091-8094:8091-8094 -p 11210:11210 -e NOMBRE_CUBO=fotogalería --nombre couchbase chakrar27/couchbase:fotogalería |
En este punto, puede iniciar sesión en el contenedor Docker Couchbase yendo a:
1 |
192.168.99.100:8091 |
192.168.99.100 es la IP de la máquina Docker.
Ejecutar la imagen de la aplicación
Una vez que el contenedor Couchbase está en funcionamiento, podemos proceder a construir el contenedor de la aplicación. Echa un vistazo a la Dockerfile para la aplicación de fotogalería como referencia.
Usted puede construir el contenedor de aplicaciones por:
1 |
docker construya -t chakrar27/nodejs:photogalleryapp <ruta-a-Dockerfile> |
Ejecutar la imagen por:
1 |
docker ejecute -p 3000:3000 -e AWS_ACCESS_KEY=<su acceda a clave> -e CLAVE_SECRETA_AWS=<su secreto clave> -e S3_BUCKET=<s3 cubo> -e ANFITRIÓN=http://192.168.99.100:3000 -e COUCHBASE_HOST=couchbase -e COUCHBASE_BUCKET=photogallery -e PORT=3000 --name node-photo-app chakrar27/nodejs:photogalleryapp |
Ahora, si escribe 192.168.99.100:3000 en el navegador, debería ver
Pruébalo:
La imagen del coche se guarda y se etiqueta. Tiene 4 "me gusta". Veamos el cubo de Couchbase:
Como era de esperar, el cubo tiene la información actualizada con 4 "me gusta" y las etiquetas.
Así que hemos conseguido ejecutar la aplicación de fotogalería en un contenedor Docker hablando con otro contenedor (Couchbase) sin instalar nada en la máquina local. ¿No es genial?
Referencias
Los siguientes posts de Nic Raboy son muy útiles para ponerse en marcha con Docker y Node.js.
- Crear una aplicación de galería de fotos con etiquetado automático mediante AWS Rekognition y Couchbase - Parte 1
- Crear una aplicación de galería de fotos con etiquetado automático mediante AWS Rekognition y Couchbase - Parte 2
- Crear una aplicación de galería de fotos con etiquetado automático mediante AWS Rekognition y Couchbase - Parte 3
Este post forma parte del Programa de Escritura de la Comunidad Couchbase