Não faz muito tempo, escrevi sobre Containerização de uma API RESTful do Node.js e do servidor Couchbase para demonstrar como é fácil implantar aplicativos da Web de forma rápida e confiável. Nesse guia, criamos uma API simples, construímos uma imagem do Docker a partir dela, implantamos como um contêiner e implantamos o Couchbase como um contêiner. No entanto, sei que nem todos estão familiarizados com o Node.js.

Aqui, vamos criar uma API RESTful Java simples usando o Spring Boot, criar um Docker a partir dela e implantá-la como um contêiner com Couchbase. Isso criará um ambiente familiar para os desenvolvedores Java.

Este tutorial exige que você tenha um Docker instalado e configurado em seu computador. Com o Docker, criaremos imagens personalizadas do Docker e as implantaremos como contêineres.

Criar uma imagem do Docker personalizada para o Couchbase Server

Vamos começar criando uma imagem Docker personalizada para o Couchbase Server. Embora uma imagem imagem oficial do Couchbase existe, ela não é provisionada automaticamente quando implantada. Nossa imagem personalizada será provisionada automaticamente após a implementação como um contêiner.

Em algum lugar de seu computador, crie um diretório com o nome Dockerfile arquivo e configure.sh nele. O arquivo Dockerfile será o modelo para nossa imagem e o arquivo configure.sh será o script de provisionamento que será executado quando o contêiner for implantado.

Abra o configure.sh e inclua o seguinte:

O Couchbase pode ser configurado por HTTP após a implantação. Nosso script de configuração especificará os recursos da instância, as credenciais administrativas, um Bucket e um índice primário. Você notará que diversas variáveis são usadas, como $COUCHBASE_ADMINISTRATIVE_USERNAME$COUCHBASE_BUCKET. Elas podem ser passadas em tempo de execução, evitando que tenhamos que codificar informações confidenciais.

Mais informações sobre o provisionamento de um contêiner do Couchbase via HTTP podem ser vistas em um Artigo anterior que escrevi sobre o assunto.

Com o script de provisionamento concluído, temos que terminar o script Dockerfile arquivo. Abra-o e inclua o seguinte:

A imagem personalizada do Docker usará a imagem oficial do Docker como base, copiará nosso script de provisionamento durante o processo de compilação e o executará em tempo de execução.

Para criar a imagem personalizada para o Couchbase, execute o seguinte:

No comando acima couchbase-custom é o nome da imagem e é criado a partir do caminho que contém o Dockerfile arquivo.

Desenvolvimento de uma API RESTful do Spring Boot com Java

Antes de podermos colocar nosso aplicativo Java em um contêiner, precisamos criá-lo. Como estamos usando o Spring Boot, precisamos fazer download de um projeto inicial. Isso pode ser feito facilmente na seção Inicialização do Spring site.

Spring Boot Initializr

Para este projeto, estou usando com.couchbase como meu grupodoca como meu artefato. Também prefiro o Gradle, portanto, estou usando-o em vez do Maven.

Extraia o projeto baixado e abra o arquivo src/main/resources/application.properties arquivo. Nesse arquivo, inclua o seguinte:

No exemplo acima, estamos assumindo que nossa instância de host se chama couchbase e tem um Bucket sem senha chamado padrão. Se você estivesse testando localmente, o host provavelmente seria localhost. De qualquer forma, todas essas propriedades serão definidas no tempo de execução do contêiner por meio de variáveis de ambiente.

Agora, abra o arquivo src/main/java/com/couchbase/DockerApplication.java arquivo. Aqui, carregaremos nossas propriedades e definiremos nossos pontos de extremidade. Abra esse arquivo e inclua o seguinte código Java:

Não está acontecendo muita coisa no trecho acima. Grande parte é código padrão e declarações de importação. Como o objetivo deste artigo não é usar Java com o Couchbase, não explicarei cada parte do código. Em vez disso, saiba que ele tem três pontos de extremidade, um dos quais obterá todos os documentos no Bucket e um dos quais salvará novos documentos no Couchbase.

Se você estiver usando o Gradle, como eu, precisará alterar o build.gradle arquivo. Ele precisa ter uma tarefa criada e dependências adicionadas. Suas build.gradle O arquivo deve ter a seguinte aparência:

Para criar o aplicativo, execute o seguinte:

Agora você terá um arquivo JAR para ser usado em nossa imagem do Docker.

Criar uma imagem personalizada do Docker para o aplicativo Spring Boot

A criação de uma imagem personalizada exigirá que tenhamos um Dockerfile no lugar. Na base de seu projeto Java, adicione um arquivo Dockerfile e inclua o seguinte:

No exemplo acima, estamos usando a imagem oficial do OpenJDK como base e estamos copiando nosso JAR para a imagem no momento da compilação. Na implantação, o JAR é executado.

Para criar essa imagem, execute o seguinte:

O comando acima deve parecer familiar. Estamos criando um bota de mola personalizada usando o blueprint encontrado no diretório do nosso Dockerfile arquivo.

Para obter mais informações sobre a criação de imagens personalizadas do Docker, consulte um artigo anterior que escrevi chamado, Crie uma imagem personalizada do Docker para seu aplicativo da Web em contêiner.

Implantação das imagens do Couchbase e do Spring Boot como contêineres

Há algumas opções quando se trata de implementar nossas imagens. Podemos usar um arquivo Compose ou implementá-las como contêineres vanilla. Acho que o Compose é uma abordagem mais limpa, portanto, vamos usá-lo.

Em algum lugar de seu computador, crie um arquivo docker-compose.yml e inclua o seguinte:

No arquivo acima, estamos definindo as imagens personalizadas que criamos e estamos fazendo o mapeamento de portas para a máquina host. O que é particularmente interessante é a seção ambiente opções. Elas correspondem às variáveis que temos em nosso application.propertiesconfigure.sh arquivos.

Para implementar nossos contêineres com o Compose, execute o seguinte:

Algo a ser observado sobre os comandos acima. O Couchbase não é implantado instantaneamente. Você precisará esperar até que ele seja completamente iniciado antes de implantar o aplicativo Java. Depois que os dois aplicativos forem iniciados, verifique-os navegando até o aplicativo Java em seu navegador da Web.

Conclusão

Você acabou de ver como criar Docker para um aplicativo Spring Boot e um servidor Couchbase. Após a implantação de cada um como contêineres, eles poderão se comunicar entre si, o que é extremamente conveniente para a manutenção.

Se você estiver interessado em ver isso feito com o Node.js, confira o Artigo anterior Escrevi sobre o assunto. Se você estiver interessado em saber mais sobre o Java SDK para o Couchbase, consulte o Portal do desenvolvedor do Couchbase.

Autor

Postado por Nic Raboy, defensor dos desenvolvedores, Couchbase

Nic Raboy é um defensor das modernas tecnologias de desenvolvimento móvel e da Web. Ele tem experiência em Java, JavaScript, Golang e uma variedade de estruturas, como Angular, NativeScript e Apache Cordova. Nic escreve sobre suas experiências de desenvolvimento relacionadas a tornar o desenvolvimento móvel e da Web mais fácil de entender.

Um comentário

  1. [...] se estiver interessado, você pode dar uma olhada em Use Docker to Deploy a Containerized Java with Couchbase Web Application e Deploy a Node.js with Couchbase Web Application as Docker Containers, dependendo do seu [...]

Deixar uma resposta