DEV Community

Cover image for Destrancando o Docker: Garantindo que seu aplicativo espere pelo banco de dados com Dockerize
Renato Vicente
Renato Vicente

Posted on

Destrancando o Docker: Garantindo que seu aplicativo espere pelo banco de dados com Dockerize

O uso do Dockerize em combinação com o Node.js é uma prática essencial para garantir que seu aplicativo Docker aguarde serviços dependentes, como um banco de dados MongoDB, antes de iniciar. Neste guia, mostro como implementar o Dockerize em seu projeto Node.js.

O Problema da Dependência entre Contêineres:

Ao criar aplicativos Docker que dependem de outros serviços, como bancos de dados, é crucial garantir que o serviço esteja pronto antes que o aplicativo inicie. Ignorar essa dependência pode levar a falha.

O que é o Dockerize:

O Dockerize é uma ferramenta que ajuda a esperar por serviços antes de iniciar um contêiner. Ele permite que você especifique condições de espera para garantir que seu aplicativo não inicie até que os serviços estejam prontos.

Configurando o Dockerize:

  1. Crie seu Dockerfile:
    Você começará criando um Dockerfile para seu aplicativo Node.js. Certifique-se de usar uma imagem base do Node.js que atenda às necessidades do seu aplicativo.

  2. Instale o Dockerize:
    No Dockerfile, adicione as instruções para instalar o Dockerize. Você pode usar o seguinte código:

ENV DOCKERIZE_VERSION v0.7.0

RUN apk update --no-cache \
    && apk add --no-cache wget openssl \
    && wget -O - https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz | tar xzf - -C /usr/local/bin \
    && apk del wget
Enter fullscreen mode Exit fullscreen mode
  1. Defina as Condições de Espera: Agora, você deve definir as condições de espera no Dockerfile. Por exemplo, se seu aplicativo Node.js depende de um serviço MongoDB na porta 27017, você pode usar o seguinte código:
CMD dockerize -wait tcp://mongodb:27017 -timeout 1m node app.js
Enter fullscreen mode Exit fullscreen mode

Exemplo Prático:

Aqui está um exemplo prático de como usar o Dockerize com Node.js:

FROM node:14

WORKDIR /app

# Instale o Dockerize
ENV DOCKERIZE_VERSION v0.7.0
RUN wget -O - https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz | tar xzf - -C /usr/local/bin

# Defina as condições de espera para o MongoDB
CMD dockerize -wait tcp://mongodb:27017 -timeout 1m node app.js
Enter fullscreen mode Exit fullscreen mode

Conclusão

A utilização do Dockerize é uma prática essencial para garantir que sua API seja robusta e confiável, evitando comportamentos indesejados e garantindo que as dependências entre contêineres sejam adequadamente gerenciadas.

Top comments (0)