Tecnologias de contêineres, como Docker simplificaram muito o processo de desenvolvimento, teste e implantação de software, permitindo que você empacote aplicativos juntamente com seu ambiente de tempo de execução completo que abstrai as diferenças de infraestrutura e sistemas operacionais. Esta postagem é uma cartilha sobre como você pode usar o Docker para configurar seu Couchbase Mobile ambiente de desenvolvimento e oferece algumas dicas de solução de problemas.
Tudo o que foi discutido nesta postagem se aplica a um simples desenvolvimento com o objetivo de agilizar o processo de desenvolvimento para que você possa começar a criar aplicativos móveis com rapidez e facilidade usando o Couchbase Mobile.
Em um artigo relacionado postagemNa seção de perguntas e respostas, discutimos como você pode aproveitar Kubernetes para dimensionar e gerenciar a implantação do cluster do Couchbase Mobile em ambientes de produção. O Operador autônomo do Couchbase simplifica muito a tarefa de implementar e gerenciar seu cluster.
Histórico
Em um nível elevado, o Couchbase Mobile A pilha é composta pelos seguintes componentes
- O Couchbase Lite, que é o banco de dados NoSQL incorporado e integrado aos seus aplicativos móveis
- O Sync Gateway, que é o gateway responsável pela sincronização de dados entre os clientes e o Couchbase Server
- O Couchbase Server, responsável pela persistência de dados
Para começar a desenvolver usando o Couchbase Mobile, você precisa de uma instância do Couchbase Server e do Sync Gateway. Você integrará a estrutura do Couchbase Lite aos seus aplicativos.
Nesta postagem, aprenderemos a usar o Docker para implantar uma instância de um Gateway de sincronização e um único nó Servidor Couchbase em um cluster desktop ambiente adequado para fins de desenvolvimento.
Instalação do Docker
Se você ainda não tiver feito isso, instale o Docker de acordo com o guia guia de instalação para seu ambiente de trabalho.
Você pode verificar a instalação do docker digitando o seguinte comando em uma janela de terminal.
1 |
doca --versão |
Você deverá ver uma resposta semelhante à abaixo
1 |
Docker versão 18.03.0-ce, construir 0520e24 |
Instalação do servidor Couchbase
O Couchbase Server está disponível em Docker Hub no couchbase
repo. No momento da redação deste post, essa versão é a 6.0.1.
- Primeiro, você obterá a imagem do Docker no Docker Hub. Abra uma janela de terminal e execute o seguinte comando
1 |
doca puxar couchbase/servidor |
- Crie uma rede docker local chamada "cbnetwork" (ou qualquer outro nome) se ainda não existir uma. Abra uma janela de terminal e execute o seguinte comando. Se você usar um nome de rede diferente de "cbnetwork", lembre-se de atualizar o uso correspondente do nome nas instruções restantes.
1 2 |
doca rede ls doca rede criar -d ponte cbnetwork |
Configuração do servidor Couchbase
Depois que o Couchbase Server estiver instalado e em execução, você terá que configurá-lo antes de começar a usá-lo com o Sync Gateway
Aqui está o conjunto mínimo de coisas que você terá que fazer :-
- Crie um cluster com os serviços adequados. Um cluster de nó único é suficiente para as necessidades de desenvolvimento
- Configurar a conta do administrador para acesso ao servidor
- Configurar o cluster
- Criar um bucket padrão
- Crie um usuário RBAC com acesso apropriado ao nível de bucket. As credenciais do usuário RBAC são usadas pelo Sync Gateway para autenticar com o Couchbase Server
Você tem duas opções de como configurar o Couchbase Server - Manual e Automatizado. Vá para a seção apropriada, dependendo da sua escolha.
Opção 1: Configuração usando a interface do usuário do administrador
Você pode configurar o Couchbase Server manualmente por meio da interface do usuário do console de administração do Couchbase
Para acessar a interface do administrador, precisamos executar a imagem do docker que extraímos anteriormente.
- Execute o Couchbase Server com o seguinte comando. Isso executa o Couchbase Server como um processo daemon.
1 |
doca executar -d --nome cb-servidor --rede cbnetwork -p 8091-8094:8091-8094 -p 11210:11210 couchbase/servidor |
- Você pode visualizar os registros a qualquer momento executando o seguinte comando
1 |
doca registros -f cb-servidor |
- Se o servidor tiver sido iniciado com sucesso, você deverá ver algo como isto em seu resultado
1 |
Início Couchbase Servidor -- Web IU disponível em http://<ip>:8091 e registros disponível em /optar/couchbase/var/lib/couchbase/registros |
- Pode levar alguns segundos para que o servidor seja inicializado. Verifique se a imagem do docker está sendo executada com o seguinte comando
1 |
doca ps |
- Quando o servidor estiver em funcionamento, acesse-o abrindo a URL
http://localhost:8091
em seu navegador - Siga as instruções na seção guia de configuração para configurar a conta de administrador e criar um cluster de nó único.
- Siga as instruções aqui para criar um balde
- Em seguida, crie um usuário RBAC para que o Sync Gateway se conecte. Esse usuário será criado com a função "with "Application Access"", conforme especificado nas instruções aqui
- Depois que seu Couchbase Server estiver configurado, certifique-se de anotar
- O nome do bucket que você criou
- As credenciais de usuário RBAC que você usou para a configuração
As credenciais RBAC e o nome do bucket serão necessários quando você estiver pronto para configurar o Sync Gateway
O processo manual é bom, mas pode se tornar entediante se você tiver que repetir esse processo várias vezes em cada uma de suas configurações de desenvolvimento. Não seria ótimo se as etapas de configuração pudessem ser automatizadas? Se estiver interessado em aprender sobre isso, prossiga para a próxima seção; caso contrário, pule para a seção sobre configuração do Sync Gateway.
Opção 2: Configuração usando a CLI
Gerei uma imagem docker personalizada a partir da imagem do Couchbase Server 6.0.1 que permitirá iniciar o contêiner com os valores de configuração apropriados por meio da linha de comando. Isso será particularmente útil se você quiser automatizar/roteirizar o processo de instalação/automação.
Embora a versão 6.0.1 seja a mais recente no momento em que escrevemos a publicação, provavelmente não é a mais recente no momento em que você a está lendo. Portanto, siga as etapas em "Building Custom Configurable Docker Image" para criar uma imagem personalizada com uma versão de servidor diferente.
- Faça o download dessa versão de desenvolvimento personalizada da imagem do Couchbase Server com base no Couchbase Server 6.0.1.
1 |
doca puxar priyacouch/couchbase-dev-6.0<código classe="width-set:true lang:sh wrap:true"></código><código classe="width-set:true lang:sh wrap:true"> |
- Depois de fazer o download da imagem personalizada com sucesso, você pode iniciá-la fornecendo os valores de configuração apropriados como parte do comando de inicialização. Certifique-se de registrar as credenciais de usuário RBAC e o nome do bucket. Eles serão relevantes durante a configuração do Sync Gateway
- COUCHBASE_ADMINISTRATOR_USERNAME é o nome do administrador do Couchbase
- COUCHBASE_ADMINISTRATOR_PASSWORD é a senha do administrador do Couchbase
- COUCHBASE_BUCKET é o nome do bucket do banco de dados que você gostaria de criar
- COUCHBASE_RBAC_USERNAME é o nome do usuário RBAC do Sycn Gateway com acesso ao bucket de nível de aplicativo
- COUCHBASE_RBAC_PASSWORD é a senha do usuário RBAC
- COUCHBASE_RBAC_NAME é um nome de fácil utilização para o usuário RBAC
- CLUSTER_NAME o nome do cluster do Couchbase Server
Abra uma janela de terminal e digite o seguinte comando. Você pode fornecer valores adequados para cada um dos parâmetros configuráveis.
1 |
doca executar -d --nome cb-servidor --rede cbnetwork -p 8091-8094:8091-8094 -p 11210:11210 -e COUCHBASE_ADMINISTRATOR_USERNAME=Administrador -e COUCHBASE_ADMINISTRATOR_PASSWORD=senha -e COUCHBASE_BUCKET=demobucket -e NOME DE USUÁRIO DO COUCHBASE_RBAC=administrador -e COUCHBASE_RBAC_PASSWORD=senha -e NOME_DA_BASE_DO_CAMA="admin" -e NOME DO CLUSTER=demonstração-agrupamento priyacouch/couchbase-dev-6.0 |
- Você pode visualizar os registros a qualquer momento executando o seguinte comando
1 |
doca registros -f cb-servidor |
- Você precisa ser paciente. O servidor leva alguns minutos para entrar em funcionamento. Se for bem-sucedido, sua saída deverá ser semelhante a esta
1 |
< 100 50 0 0 100 50 0 1172 --:--:-- --:--:-- --:--:-- 1219 * Conexão #0 para o host 127.0.0.1 permaneceu intacto SUCCESS: Bucket criado SUCCESS: Usuário RBAC definido /entrypoint.sh couchbase-server |
- É isso aí! Agora você pode testar sua instalação.
Acesse-o abrindo a URLhttp://localhost:8091
em seu navegador e verifique se sua configuração está conforme especificado

Criação de imagem do Docker personalizada e configurável
Se estiver se perguntando como gerei a imagem personalizada com opções configuráveis, há algumas maneiras de fazer isso. Mas adotei uma abordagem inspirada no tutorial. Basicamente, criei uma imagem do docker personalizada a partir da imagem base do servidor Coucbase e a configurei de acordo com nossas necessidades de desenvolvimento!
Há uma tonelada de valores configuráveis personalizados, conforme descrito no CLI do couchbase e Interface REST especificações. Em minha imagem personalizada do docker, permiti a configuração de alguns parâmetros críticos e deixei os outros como padrão.
Se quiser gerar sua própria imagem com base em uma versão diferente do Couchbase Server e/ou se quiser personalizar os parâmetros configuráveis, você poderá fazer isso seguindo as etapas especificadas neste guia
Instalação do Sync Gateway
Agora que você tem o Couchbase Server configurado e em funcionamento, instalaremos o Sync Gateway. É importante que o Couchbase Server esteja em funcionamento antes de você começar a usar o Sync Gateway.
O Sync Gateway está disponível em Docker Hub no couchbase
repo.
- Primeiro, você obterá a imagem do Docker no Docker Hub. Abra uma nova janela de terminal e execute o seguinte.
1 |
doca puxar couchbase/sincronização-portal |
- O Sync Gateway deve ser iniciado com um arquivo de configuração onde você especifica, entre outras coisas, o URL do Couchbase Server ao qual se conectar, o bucket a ser acessado e as credenciais RBAC a serem usadas para o acesso ao bucket. O arquivo de configuração determina o comportamento do gateway de sincronização em tempo de execução.
A imagem do docker que você extraiu foi criada com um arquivo de configuração padrão. Se você não especificar nenhum, esse será o arquivo usado (e provavelmente não funcionará para você).
- Se você tiver uma configuração que gostaria de usar, abra-a em um editor de sua escolha. Caso contrário, crie um novo arquivo de configuração chamado
sync-gateway-config.json
e copie a seguinte configuração.
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 |
{ "interface":":4984", "registro": { "log_file_path" (caminho do arquivo de registro): "/var/tmp/sglogs", "console": { "log_level": "debug", "log_keys": ["*"] }, "error" (erro): { "habilitado": verdadeiro, "rotação": { "max_size": 20, "max_age": 180 } }, "warn": { "habilitado": verdadeiro, "rotação": { "max_size": 20, "max_age": 90 } }, "info": { "habilitado": falso }, "debug": { "habilitado": falso } }, "bancos de dados": { "demobucket": { "import_docs": "contínuo", "enable_shared_bucket_access":verdadeiro, "bucket" (balde):"demobucket", "servidor": "http://cb-server:8091", "nome de usuário": "admin", "senha": "senha", "num_index_replicas":0, "usuários":{ "CONVIDADO": {"desativado":verdadeiro}, "admin": {"senha": "senha", "admin_channels": ["*"]} }, "revs_limit":20 } } } |
- Você pode adicionar um
sincronização
ou qualquer uma das outras propriedades de configuração. Vamos nos concentrar nas principais que são essenciais para o nosso ambiente de desenvolvimento. Você deve fazer as edições apropriadas no arquivo de configuração conforme especificado abaixo. - O
servidor
URL especifica o nome do contêiner do Couchbase Server. Na seçãoexecução do docker
usado para iniciar o Couchbase Server, especificamos o nome usando o parâmetro--name
opção. - O
banco de dados
ebalde
deve corresponder ao$COUCHBASE_BUCKET
que você usou quando configurou o Couchbase Server. Em nosso exemplo, esse valor foi especificado comodemobucket
. - O
nome de usuário
corresponde ao nome de usuário da conta RBAC que você criou para o acesso ao bucket, conforme especificado pelo$COUCHBASE_RBAC_USERNAME
que você usou quando configurou o Couchbase Server. Em nosso exemplo, esse valor foi especificado comoadministrador
. - O
senha
corresponde à senha da conta RBAC que você criou para o acesso ao balde, conforme especificado pelo$COUCHBASE_RBAC_PASSWORD
que você usou quando configurou o Couchbase Server. Em nosso exemplo, esse valor foi especificado como senha. - Depois que o arquivo de configuração estiver configurado, você iniciará o Sync Gateway com o arquivo. Para isso, abra um terminal e execute os seguintes comandos
1 2 3 |
cd /caminho/para/sincronização-portal-configuração.json doca executar -p 4984-4985:4984-4985 --rede cbnetwork --nome sincronização-portal -d -v `pwd`/sincronização-portal-configuração.json:/etc/portais de sincronização/portais de sincronização.json couchbase/sincronização-portal -adminInterface :4985 /etc/portais de sincronização/portais de sincronização.json |
- Você pode visualizar os registros a qualquer momento executando o seguinte comando
1 |
doca registros -f sincronização-portal |
- Pode levar alguns segundos para que o gateway de sincronização seja inicializado. Verifique se a imagem do docker está sendo executada com o seguinte comando
1 |
doca ps |
- Verifique se o gateway de sincronização está em execução abrindo a URL
http://localhost:4984
em seu navegador.
Você deverá ver o seguinte resultado
1 |
{"couchdb":"Bem-vindo","vendor" (fornecedor):{"name" (nome):"Gateway de sincronização do Couchbase","versão":"2.8"},"versão":"Couchbase Sync Gateway/2.8(2;35fe28e)"} |
- Verifique se o gateway de sincronização está se comunicando com o bucket do Couchbase Server abrindo a URL
http://localhost:4985/demobucket/
em seu navegador. Aquidemobucket
é o nome do bucket do banco de dados que criamos.
Você deverá ver um resultado semelhante ao abaixo, indicando a versão do gateway de sincronização
1 |
{"committed_update_seq":0,"compact_running":falso,"db_name":"demobucket","disk_format_version" (versão do formato do disco):0,"instance_start_time":1554265962361858,"purge_seq":0,"estado":"Online","update_seq":0} |
É isso aí! Você tem sua instância do docker do gateway de sincronização conversando com o servidor Couchbase
Gerenciando seu ambiente
Nesta seção, veremos alguns comandos básicos do docker que ajudarão a gerenciar seu ambiente.
Parar/iniciar contêineres
- Você pode parar e reiniciar os contêineres do docker a qualquer momento usando o comando
parar
einiciar
comandos do docker como segue.- Interrupção de contêineres
12doca parar sincronização-portaldoca parar cb-servidor- Iniciando contêineres
12doca iniciar cb-servidordoca iniciar sincronização-portal
Observação que se você parar o Couchbase Server, o Sync Gateway tentará se reconectar ao servidor por alguns minutos antes de desistir. Portanto, se o servidor for interrompido por um longo período de tempo, será necessário interromper e reiniciar o contêiner do Sync Gateway também ou usar o comando _online
API para colocá-lo novamente on-line.
Atualização da configuração do Sync Gatway
- Se você quiser atualizar a configuração do gateway de sincronização, precisará executar novamente o Sync Gateway com um arquivo de configuração do gateway de sincronização atualizado. Para isso, será necessário interromper e remover o contêiner do gateway de sincronização.
1 2 |
doca parar sincronização-portal doca rm sincronização-portal |
Se você não remover a imagem do sync-gateway, verá um "erro de conflito de nome" semelhante ao abaixo se tentar iniciar o sync-gateway novamente com a configuração atualizada.
1 |
doca: Erro resposta de daemon: Conflito. O contêiner nome "/sync-gateway" é já em uso por contêiner "bc67153afda9b90303b2965b62c5e34751ce3748fd8d5fb7ed38a418d7b77cfd". Você ter para remover (ou renomear) que contêiner para ser capaz para reutilização que nome. Veja 'docker run --help'.<código classe="bash"> |
Atualização da configuração do servidor Couchbase
- Da mesma forma, se quiser executar novamente o servidor Couchbase com uma configuração atualizada, você precisará parar e remover o servidor couchbase.
1 2 |
doca parar cb-servidor doca rm cb-servidor |
No entanto, dependendo da configuração do servidor que foi alterada, talvez seja necessário parar e remover o contêiner do gateway de sincronização e reiniciá-lo com o arquivo de configuração do gateway de sincronização atualizado. Por exemplo, se você alterou as credenciais RBAC para o bucket ou se alterou o nome do bucket que.
Executar comandos no contêiner
Às vezes, você pode querer executar comandos diretamente no contêiner em execução. Para isso, você pode usar o docker executar
para abrir um shell no contêiner. Isso é extremamente útil para depuração e coisas do gênero. Você precisará de privilégios de root para poder executar o comando.
- servidor couchbase
1 |
sudo doca executar -i -t cb-servidor /caixa/bash |
- gateway de sincronização
1 |
sudo doca executar -i -t sincronização-portal /caixa/bash |
Próximas etapas
Como você já deve ter percebido nesta publicação, os contêineres do docker tornam extremamente conveniente a instalação e o funcionamento de um cluster do Couchbase Server e do Sync Gateway em seu ambiente de desenvolvimento. Com a configuração do back-end fora do caminho, você pode se concentrar na criação de aplicativos móveis incríveis com o Couchbase Lite.
Como próxima etapa, você pode usar docker-compose para instalar os contêineres do Couchbase Server e do Sync Gateway. Lembre-se de que o Sync Gateway depende do Couchbase Server para estar em funcionamento.
Esta postagem abordou a configuração do contêiner docker em um ambiente de desenvolvimento. Em um ambiente de produção real, você provavelmente nunca implantaria um cluster de nó único. É provável que você queira ter vários nós para ter alta disponibilidade. Você pode usar uma tecnologia de orquestração como Kubernetes para simplificar a implantação e o gerenciamento do cluster do Couchbase Mobile.
Se você tiver dúvidas ou comentários, deixe um comentário abaixo. Os Fóruns do Couchbase são outro bom lugar para entrar em contato com perguntas.
erro no arquivo de configuração. parâmetros duplicados de - "enable_shared_bucket_access":true,
Está procurando uma maneira de carregar um novo arquivo de configuração?
A entrada de configuração duplicada não causará nenhum problema. É benigno, mas vou corrigi-lo. Você terá que reiniciar o contêiner do docker com o arquivo atualizado.
Ele não parecia benigno porque não iniciava o gateway de sincronização e o erro indicava entradas duplicadas. Reiniciei o servidor e o gateway de sincronização e recebo esse erro.
2021-01-11T18:01:08.890Z [ERR] Erro ao ler o arquivo de configuração /etc/sync_gateway/: read /etc/sync_gateway/: is a directory - rest.ServerMain() at config.go:1091
Use os fóruns de desenvolvimento do Couchbase para discutir e depurar problemas. Esse é o canal mais apropriado para esses tópicos.
Além disso, você indicou que o gateway de sincronização não seria iniciado quando forneceu entradas de configuração de backup, portanto, compartilhe os logs que indicam o problema. O erro que você apresenta não está relacionado.
ddsfsdf