Ratnopam Chakrabarti é um desenvolvedor de software que trabalha atualmente para a Ericsson Inc. Ele tem se concentrado em IoT, tecnologias máquina a máquina, carros conectados e domínios de cidades inteligentes por um bom tempo. Ele adora aprender novas tecnologias e colocá-las em prática. Quando não está trabalhando, gosta de passar o tempo com seu filho de 3 anos.

Embora seja divertido executar o aplicativo node localmente, ele ainda exige todas as precauções de instalação dos softwares de pré-requisito, como o Couchbase etc., no sistema local. Uma alternativa é usar o Docker para colocar o aplicativo em um contêiner e executá-lo como uma imagem empacotada. O mesmo pode ser feito com o contêiner do Couchbase, portanto, não precisamos instalá-lo localmente.
Executar a imagem personalizada do Couchbase
Para executar o Couchbase usando o Docker, consulte a imagem personalizada do Couchbase Dockerfile. Ele faz uso de um script que pode ser encontrado em aqui.
O motivo pelo qual não estou usando a imagem básica do Couchbase é que quero pré-configurar minha instância do Couchbase com serviços de índice e consulta e também criar um bucket chamado "photogallery" com um índice primário criado nele. Se eu usasse a imagem básica do Docker do Couchbase, todas as etapas mencionadas acima teriam de ser configuradas manualmente. Uma das vantagens de usar o Docker é que você pode estender a imagem de base e realizar todos os tipos de etapas de automação de acordo com suas necessidades. Isso é feito pelo script (configure.sh) mencionado acima. Quando a imagem estiver pronta e em execução, você terá uma instância do Couchbase com serviço de índice e consulta já em funcionamento e um bucket com um índice colocado nele.
O script configura o serviço Couchbase, cria o bucket e o índice de uma só vez.
A imagem pode ser criada usando:
|
1 |
docker build -t chakrar27/couchbase:photogallery <path-to-Dockerfile> |
Depois que a imagem for criada, execute-a usando:
|
1 |
docker run -d -p 8091-8094:8091-8094 -p 11210:11210 -e BUCKET_NAME=photogallery --name couchbase chakrar27/couchbase:photogallery |
Nesse ponto, você pode fazer login no contêiner do Couchbase Docker acessando:
|
1 |
192.168.99.100:8091 |
192.168.99.100 é o IP da máquina do Docker.

Executar a imagem do aplicativo
Quando o contêiner do Couchbase estiver em funcionamento, poderemos prosseguir com a criação do contêiner do aplicativo. Dê uma olhada no arquivo Dockerfile para o aplicativo de galeria de fotos para referência.
Você pode criar o contêiner do aplicativo:
|
1 |
docker build -t chakrar27/nodejs:photogalleryapp <path-to-Dockerfile> |
Execute a imagem:
|
1 |
docker run -p 3000:3000 -e AWS_ACCESS_KEY=<your access key> -e AWS_SECRET_KEY=<your secret key> -e S3_BUCKET=<s3 bucket> -e HOST=https://192.168.99.100:3000 -e COUCHBASE_HOST=couchbase -e COUCHBASE_BUCKET=photogallery -e PORT=3000 --name node-photo-app chakrar27/nodejs:photogalleryapp |
Agora, se você digitar 192.168.99.100:3000 no navegador, verá

Faça o teste:

A imagem do carro é salva e marcada. Ela tem 4 "curtidas". Vamos ver o bucket do Couchbase:

Como esperado, o balde tem as informações atualizadas com 4 "curtidas" e as tags.
Assim, conseguimos executar o aplicativo de galeria de fotos em um contêiner do Docker conversando com outro contêiner (Couchbase) sem instalar nada no computador local. Não é legal?
Referências
As seguintes postagens de Nic Raboy são muito úteis para começar Docker e Node.js.
- Desenvolva um aplicativo de galeria de fotos com marcação automática usando o AWS Rekognition e o Couchbase - Parte 1
- Desenvolva um aplicativo de galeria de fotos com marcação automática usando o AWS Rekognition e o Couchbase - Parte 2
- Desenvolva um aplicativo de galeria de fotos com marcação automática usando o AWS Rekognition e o Couchbase - Parte 3
Esta postagem faz parte do Programa de Redação da Comunidade Couchbase