Tecnologías de contenedores como Docker han simplificado enormemente el proceso de desarrollo, prueba y despliegue de software al permitir empaquetar aplicaciones junto con su entorno de ejecución completo, lo que elimina las diferencias entre infraestructuras y sistemas operativos. Este post es un imprimación sobre cómo puede utilizar Docker para configurar su Couchbase Móvil de desarrollo y ofrece algunos consejos para solucionar problemas.
Todo lo expuesto en este post se aplica a un simple desarrollo con el objetivo de acelerar el proceso de desarrollo para que puedas empezar a crear aplicaciones móviles con Couchbase Mobile de forma rápida y sencilla.
En un Correo electrónico:discutimos cómo puede aprovechar Kubernetes para escalar y gestionar el despliegue del clúster de Couchbase Mobile en entornos de producción. El sitio Operador autónomo de Couchbase simplifica enormemente la tarea de desplegar y gestionar su clúster.
Fondo
A un alto nivel, el pleno Couchbase Móvil La pila consta de los siguientes componentes
- Couchbase Lite, la base de datos NoSQL integrada en tus aplicaciones móviles.
- Sync Gateway, que es la pasarela responsable de la sincronización de datos entre los clientes y Couchbase Server.
- El servidor Couchbase, responsable de la persistencia de datos
Para empezar a desarrollar con Couchbase Mobile, necesitas una instancia de Couchbase Server y Sync Gateway. Integrarás el framework Couchbase Lite en tus aplicaciones.
En este post, aprenderemos a utilizar Docker para desplegar una instancia de un archivo Pasarela de sincronización y un único nodo Servidor Couchbase clúster en un escritorio entorno adecuado para fines de desarrollo.
Instalación de Docker
Si aún no lo ha hecho, instale Docker según la guía guía de instalación para su entorno de escritorio.
Puede verificar su instalación docker escribiendo el siguiente comando en una ventana de terminal.
1 |
docker --versión |
Debería ver una respuesta similar a la siguiente
1 |
Docker versión 18.03.0-ce, construya 0520e24 |
Instalación de Couchbase Server
Couchbase Server está disponible en Centro Docker en el couchbase
repo. En el momento de escribir este post, esta versión es la 6.0.1.
- Primero obtendrás la imagen docker de Docker Hub. Abra una ventana de terminal y ejecute el siguiente comando
1 |
docker tire de couchbase/servidor |
- Cree una red docker local llamada "cbnetwork" (o cualquier nombre) si aún no existe. Abra una ventana de terminal y ejecute el siguiente comando. Si utiliza un nombre de red distinto de "cbnetwork", recuerde actualizar el uso correspondiente del nombre en las instrucciones restantes.
1 2 |
docker red ls docker red crear -d puente cbnetwork |
Configuración de Couchbase Server
Una vez que Couchbase Server esté instalado y en funcionamiento, tendrá que configurarlo antes de empezar a utilizarlo con Sync Gateway.
Estas son las cosas mínimas que tendrás que hacer :-
- Cree un clúster con los servicios adecuados. Un clúster de un solo nodo es suficiente para las necesidades de desarrollo
- Configurar la cuenta de administrador para acceder al servidor
- Configurar clúster
- Crear un cubo por defecto
- Cree un usuario RBAC con acceso a nivel de bucket apropiado. Las credenciales del usuario RBAC son utilizadas por Sync Gateway para autenticarse con el servidor Couchbase.
Tienes dos opciones sobre cómo configurar el servidor Couchbase - Manual y Automatizado. Salte a la sección adecuada en función de su elección.
Opción 1: Configuración mediante la interfaz de administración
Puede configurar el servidor Couchbase manualmente a través de la interfaz de usuario de la consola de administración de Couchbase.
Para acceder a la interfaz de administración, debemos ejecutar la imagen docker que hemos extraído anteriormente.
- Ejecute Couchbase Server con el siguiente comando. Esto ejecuta Couchbase Server como un proceso demonio.
1 |
docker ejecute -d --nombre cb-servidor --red cbnetwork -p 8091-8094:8091-8094 -p 11210:11210 couchbase/servidor |
- Puede ver los registros en cualquier momento ejecutando el siguiente comando
1 |
docker Registros -f cb-servidor |
- Si su servidor se ha iniciado correctamente, debería ver algo como esto en su salida
1 |
Inicio Couchbase Servidor -- Web INTERFAZ DE USUARIO disponible en http://<ip>:8091 y Registros disponible en /op/couchbase/var/lib/couchbase/Registros |
- El servidor puede tardar unos segundos en iniciarse. Compruebe que la imagen docker se está ejecutando con el siguiente comando
1 |
docker ps |
- Una vez que el servidor esté en funcionamiento, acceda a él abriendo la URL
http://localhost:8091
en su navegador - Siga las instrucciones del guía de configuración para configurar la cuenta de Administrador y crear un cluster de un solo nodo.
- Siga las instrucciones aquí para crear un cubo
- A continuación, cree un usuario RBAC para que Sync Gateway se conecte. Este usuario se creará con la función "con acceso a aplicaciones", tal como se especifica en las instrucciones. aquí
- Una vez que su servidor Couchbase esté configurado, asegúrese de anotar
- El nombre del cubo que ha creado
- Las credenciales de usuario RBAC que utilizó para la configuración
Las credenciales RBAC y el nombre del bucket serán necesarios cuando esté listo para configurar su Sync Gateway
El proceso manual está bien, pero puede resultar tedioso si tienes que repetir este proceso varias veces en cada una de tus configuraciones de desarrollo. ¿No sería genial si los pasos de configuración pudieran automatizarse? Si usted está interesado en aprender acerca de eso, continúe con la siguiente sección, de lo contrario sólo pasar a la sección sobre la configuración de la puerta de enlace de sincronización.
Opción 2: Configuración mediante la CLI
He generado una imagen docker personalizada a partir de la imagen de Couchbase Server 6.0.1 que te permitirá lanzar el contenedor con los valores de configuración apropiados a través de la línea de comandos. Esto será particularmente útil si quieres automatizar / script el proceso de instalación / automatización.
Aunque 6.0.1 es la última versión en el momento de escribir el post, probablemente no sea la última versión cuando lo estés leyendo. Siga los pasos descritos en "Creación de una imagen Docker configurable personalizada" para crear una imagen personalizada con una versión de servidor diferente.
- Descargue esta versión de desarrollo personalizada de la imagen de Couchbase Server basada en Couchbase Server 6.0.1.
1 |
docker tire de priyacouch/couchbase-dev-6.0<código clase="width-set:true lang:sh wrap:true"></código><código clase="width-set:true lang:sh wrap:true"> |
- Una vez que haya descargado correctamente la imagen personalizada, puede lanzarla proporcionándole los valores de configuración adecuados como parte del comando de lanzamiento. Asegúrese de registrar las credenciales de usuario RBAC y el nombre del bucket. Estos serán relevantes durante la configuración de Sync Gateway.
- COUCHBASE_ADMINISTRATOR_USERNAME es el nombre del Administrador de Couchbase
- COUCHBASE_ADMINISTRATOR_PASSWORD es la contraseña del administrador de Couchbase
- COUCHBASE_BUCKET es el nombre del bucket de base de datos que desea crear
- COUCHBASE_RBAC_USERNAME es el nombre del usuario RBAC de Sycn Gateway con acceso al bucket de nivel de aplicación
- COUCHBASE_RBAC_PASSWORD es la contraseña del usuario RBAC
- COUCHBASE_RBAC_NAME es un nombre amigable para el usuario RBAC
- CLUSTER_NAME el nombre del cluster de Couchbase Server
Abra una ventana de terminal y escriba el siguiente comando. Puede proporcionar valores adecuados para cada uno de los parámetros configurables.
1 |
docker ejecute -d --nombre cb-servidor --red cbnetwork -p 8091-8094:8091-8094 -p 11210:11210 -e COUCHBASE_ADMINISTRATOR_USERNAME=Administrador -e COUCHBASE_ADMINISTRATOR_PASSWORD=contraseña -e CUBO_CAMA=demobucket -e COUCHBASE_RBAC_USERNAME=admin -e COUCHBASE_RBAC_PASSWORD=contraseña -e COUCHBASE_RBAC_NAME="admin" -e NOMBRE_CLUSTER=demo-grupo priyacouch/couchbase-dev-6.0 |
- Puede ver los registros en cualquier momento ejecutando el siguiente comando
1 |
docker Registros -f cb-servidor |
- Hay que tener paciencia. El servidor tarda unos minutos en ponerse en marcha. Si tiene éxito, su salida debe ser algo como esto
1 |
< 100 50 0 0 100 50 0 1172 --:--:-- --:--:-- --:--:-- 1219 * Conexión #0 al host 127.0.0.1 intacto ÉXITO: Bucket created SUCCESS: Usuario RBAC establecido /entrypoint.sh couchbase-server |
- Ya está. Ahora puede probar su instalación.
Acceda abriendo la URLhttp://localhost:8091
en su navegador y compruebe que su configuración es la especificada

Creación de una imagen Docker personalizada y configurable
Si te estás preguntando cómo he generado la imagen personalizada con opciones configurables, hay un par de maneras de hacerlo. Pero tomé un enfoque inspirado en el tutorial. Esencialmente construí una imagen docker personalizada a partir de la imagen base del servidor Coucbase y la configuré para nuestras necesidades de desarrollo.
Hay una tonelada de valores configurables personalizados como se describe en el CLI de couchbase y Interfaz REST especificaciones. En mi imagen docker personalizada, permití la configuración de unos pocos parámetros críticos y dejé los demás por defecto.
Si desea generar su propia imagen basada en una versión diferente de Couchbase Server y/o si desea personalizar los parámetros configurables, puede hacerlo siguiendo los pasos especificados en este guía
Instalación de Sync Gateway
Ahora que tienes el Couchbase Server configurado y funcionando, instalaremos el Sync Gateway. Es importante que Couchbase Server esté en funcionamiento antes de empezar con Sync Gateway.
Sync Gateway está disponible en Centro Docker en el couchbase
repo.
- Primero obtendrás la imagen docker de Docker Hub. Abre una nueva ventana de terminal y ejecuta lo siguiente.
1 |
docker tire de couchbase/sincronizar-pasarela |
- Sync Gateway debe iniciarse con un archivo de configuración donde se especifica, entre otras cosas, la URL del Servidor Couchbase al que conectarse, el bucket al que acceder y las credenciales RBAC a utilizar para el acceso al bucket. El archivo de configuración determina el comportamiento en tiempo de ejecución de la pasarela de sincronización.
La imagen Docker que has sacado se construye con un archivo de configuración por defecto. Si no especifica ninguno, eso es lo que se utilizará (y que probablemente no va a trabajar para usted).
- Si tiene una configuración que desea utilizar, ábrala en un editor de su elección. Si no, cree un nuevo archivo de configuración llamado
sync-gateway-config.json
y copia la siguiente configuración
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
{ "interfaz":":4984", "registro": { "log_file_path": "/var/tmp/sglogs", "consola": { "log_level": "depurar", "log_keys": ["*"] }, "error": { "activado": verdadero, "rotación": { "tamaño_máximo": 20, "max_age": 180 } }, "advertir": { "activado": verdadero, "rotación": { "tamaño_máximo": 20, "max_age": 90 } }, "info": { "activado": falso }, "depurar": { "activado": falso } }, "bases de datos": { "demobucket": { "importar_docs": "continuo", "enable_shared_bucket_access":verdadero, "cubo":"demobucket", "servidor": "http://cb-server:8091", "nombre de usuario": "admin", "contraseña": "contraseña", "num_index_replicas":0, "usuarios":{ "INVITADO": {"desactivado":verdadero}, "admin": {"contraseña": "contraseña", "admin_canales": ["*"]} }, "revs_limit":20 } } } |
- Puede añadir un
sincronizar
o cualquiera de las otras propiedades de configuración. Nos centraremos en las que son esenciales para nuestro entorno de desarrollo. Usted debe hacer las modificaciones apropiadas en el archivo de configuración como se especifica a continuación. - En
servidor
URL especifica el nombre del contenedor de Couchbase Server. En el campodocker run
utilizado para lanzar el servidor Couchbase, especificamos el nombre utilizando el parámetro--name
opción. - En
base de datos
ycubo
debe corresponder al$COUCHBASE_BUCKET
que utilizó cuando configuró el servidor Couchbase. En nuestro ejemplo, se especificó que fuerademobucket
. - En
nombre de usuario
corresponde al nombre de usuario de la cuenta RBAC que creó para el acceso al cubo, tal y como se especifica en el campo$COUCHBASE_RBAC_USERNAME
que utilizó cuando configuró el servidor Couchbase. En nuestro ejemplo, se especificó que fueraadmin
. - En
contraseña
corresponde a la contraseña de la cuenta RBAC que creó para el acceso al cubo, tal como se especifica en el campo$COUCHBASE_RBAC_PASSWORD
que utilizó cuando configuró el Servidor Couchbase. En nuestro ejemplo, se especificó que la contraseña. - Una vez configurado el archivo de configuración, deberá iniciar Sync Gateway con el archivo. Para ello, abra un terminal y ejecute los siguientes comandos
1 2 3 |
cd /ruta/a/sincronizar-pasarela-config.json docker ejecute -p 4984-4985:4984-4985 --red cbnetwork --nombre sincronizar-pasarela -d -v `pwd`/sincronizar-pasarela-config.json:/etc/sync_gateway/sync_gateway.json couchbase/sincronizar-pasarela -adminInterface :4985 /etc/sync_gateway/sync_gateway.json |
- Puede ver los registros en cualquier momento ejecutando el siguiente comando
1 |
docker Registros -f sincronizar-pasarela |
- La pasarela de sincronización puede tardar unos segundos en iniciarse. Compruebe que la imagen docker se está ejecutando con el siguiente comando
1 |
docker ps |
- Comprueba que tu pasarela de sincronización está funcionando abriendo la URL
http://localhost:4984
en tu navegador.
Debería ver el siguiente resultado
1 |
{"couchdb":"Bienvenido","vendedor":{"nombre":"Pasarela Couchbase Sync","version":"2.8"},"version":"Couchbase Sync Gateway/2.8(2;35fe28e)"} |
- Verifique que la puerta de enlace de sincronización está hablando con el cubo de Couchbase Server abriendo la URL
http://localhost:4985/demobucket/
en su navegador. Aquídemobucket
es el nombre del bucket de base de datos que hemos creado.
Deberías ver una salida similar a la siguiente indicando la versión de la pasarela de sincronización
1 |
{"commit_update_seq":0,"compact_running":falso,"db_name":"demobucket","versión_formato_disco":0,"instance_start_time":1554265962361858,"purga_seq":0,"estado":"En línea","actualizar_seq":0} |
Ya está. Ya tienes tu instancia docker de sync gateway hablando con el servidor Couchbase.
Gestionar su entorno
En esta sección, repasaremos algunos comandos básicos de Docker que te ayudarán a gestionar tu entorno.
Contenedores de parada/arranque
- Puede detener y reiniciar los contenedores docker en cualquier momento utilizando el comando
stop
yiniciar
comandos docker de la siguiente manera.- Contenedores de parada
12docker stop sincronizar-pasareladocker stop cb-servidor- Contenedores de arranque
12docker iniciar cb-servidordocker iniciar sincronizar-pasarela
Nota que si detienes Couchbase Server, Sync Gateway intentará reconectarse con el servidor durante unos minutos antes de rendirse. Así que si el servidor se detiene durante un período prolongado de tiempo, tendrá que detener y reiniciar el contenedor Sync Gateway también o utilizar la opción en línea
API para volver a ponerlo en línea.
Actualización de la configuración de Sync Gatway
- Si desea actualizar la configuración de la puerta de enlace de sincronización, deberá volver a ejecutar Sync Gateway con un archivo de configuración de puerta de enlace de sincronización actualizado. Para ello, deberá detener y eliminar el contenedor de la puerta de enlace de sincronización.
1 2 |
docker stop sincronizar-pasarela docker rm sincronizar-pasarela |
Si no eliminas la imagen del sync-gateway, verás un "error de conflicto de nombres" similar al que se muestra a continuación si intentas iniciar el sync-gateway de nuevo con la configuración actualizada.
1 |
docker: Error respuesta de demonio: Conflicto. En contenedor nombre "/sync-gateway" es ya en utilice por contenedor "bc67153afda9b90303b2965b62c5e34751ce3748fd8d5fb7ed38a418d7b77cfd". Usted tienen a eliminar (o renombrar) que contenedor a sea able a reutilizar que nombre. Véase docker run --help.<código clase="bash"> |
Actualización de la configuración del servidor Couchbase
- Del mismo modo, si desea volver a ejecutar el servidor Couchbase con una configuración actualizada, tendrá que detener y eliminar el servidor couchbase.
1 2 |
docker stop cb-servidor docker rm cb-servidor |
Sin embargo, en función de la configuración del servidor que se haya modificado, es posible que también deba detener y eliminar el contenedor de puerta de enlace de sincronización y volver a iniciarlo con el archivo de configuración de puerta de enlace de sincronización actualizado. Por ejemplo, si ha cambiado las credenciales RBAC para el bucket o si ha cambiado el nombre del bucket que.
Ejecutar comandos en el contenedor
A veces, es posible que desee ejecutar comandos directamente en el contenedor en ejecución. Para ello, puede utilizar la ventana acoplable exec
para abrir un shell en el contenedor. Esto es extremadamente útil para la depuración y tal. Necesitarás privilegios de root para poder ejecutar el comando.
- servidor couchbase
1 |
sudo docker exec -i -t cb-servidor /papelera/bash |
- pasarela de sincronización
1 |
sudo docker exec -i -t sincronizar-pasarela /papelera/bash |
Próximos pasos
Como probablemente has deducido de este post, los contenedores docker hacen que sea extremadamente conveniente ponerte en marcha con un clúster de Couchbase Server y Sync Gateway en tu entorno de desarrollo. Con la configuración de backend fuera del camino, puedes centrarte en la construcción de tus aplicaciones móviles impresionantes con Couchbase Lite.
A continuación, puede utilizar docker-compose para instalar los contenedores Couchbase Server y Sync Gateway. Ten en cuenta que Sync Gateway depende de Couchbase Server para funcionar.
En este artículo se analizaba la configuración de un contenedor Docker en un entorno de desarrollo. En un entorno de producción del mundo real, es probable que nunca implementar un clúster de un solo nodo. Es probable que desee tener varios nodos de alta disponibilidad. Puede utilizar una tecnología de orquestación como Kubernetes para simplificar el despliegue y la gestión de su clúster de Couchbase Mobile.
Si tiene alguna pregunta o sugerencia, deje un comentario a continuación. En Foros de Couchbase son otro buen lugar para plantear preguntas.
error en el archivo de configuración. parámetros duplicados de - "enable_shared_bucket_access":true,
Buscando la manera de subir un nuevo archivo de configuración, ¿alguna idea?
Una entrada de configuración duplicada no causará ningún problema. Es benigno pero lo arreglaré. Usted tendrá que reiniciar su contenedor docker con el archivo actualizado.
No parecía benigno porque no arrancaba sync gateway y el error indicaba entradas duplicadas. He reiniciado el servidor y Sync gateway y obtener este error.
2021-01-11T18:01:08.890Z [ERR] Error al leer el archivo de configuración /etc/sync_gateway/: read /etc/sync_gateway/: is a directory - rest.ServerMain() at config.go:1091
Por favor, utiliza los foros de desarrollo de Couchbase para discutir y depurar problemas. Es el canal más apropiado para este tipo de temas.
Además, indicaste que la pasarela de sincronización no se iniciaba cuando proporcionaste las entradas dup config, así que por favor comparte los logs que indican el problema. El error que muestras no está relacionado.
ddsfsdf