Mongo DB
Configuração do MongoDB e Express Mongo para Ambiente de Desenvolvimento
Para o correto funcionamento do banco de dados MongoDB e da interface administrativa Mongo Express em ambiente de desenvolvimento, são necessários dois serviços: o MongoDB e o Mongo Express. A seguir, detalhamos as configurações de cada serviço:
1. Serviço MongoDB
O MongoDB é configurado como o banco de dados principal. Ele é configurado usando o Docker, e as variáveis de ambiente necessárias para a conexão estão definidas no arquivo .env.dev, que contém informações sensíveis, como nome do banco de dados e credenciais de acesso.
Configuração do MongoDB (docker-compose)
services:
mongo:
image: mongo
env_file:
- .env.dev # Arquivo de variáveis de ambiente
ports:
- "27017:27017" # Expondo a porta padrão do MongoDB
volumes:
- dbdata-volume:/data/db # Volume persistente para dados
environment:
MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} # Nome do banco de dados
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} # Nome de usuário admin
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} # Senha do usuário admin
-
Imagem: A imagem Docker utilizada é a oficial do MongoDB (
mongo). -
Variáveis de Ambiente: O arquivo
.env.devé responsável por fornecer as variáveis de ambiente, como o nome do banco de dados, o usuário admin e a senha. -
Portas: O MongoDB estará disponível na porta 27017, a porta padrão.
-
Volumes: O volume
dbdata-volumegarante que os dados do banco sejam persistidos entre reinicializações do container. -
Variáveis de Ambiente:
-
MONGO_INITDB_DATABASE: Define o nome do banco de dados inicial. -
MONGO_INITDB_ROOT_USERNAME: Nome do usuário root/admin do MongoDB. -
MONGO_INITDB_ROOT_PASSWORD: Senha para o usuário root/admin do MongoDB.
-
2. Serviço Mongo Express
Mongo Express é uma interface web administrativa para o MongoDB, permitindo que você visualize e manipule dados diretamente via navegador. Ele também está configurado com Docker e se comunica com o banco de dados MongoDB através de uma URL de conexão específica.
Configuração do Mongo Express (docker-compose)
services:
Explicação da URL de Conexão
A URL de conexão mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017/${MONGO_INITDB_DATABASE}?authSource=admin segue a seguinte estrutura:
-
mongodb://: Protocolo de conexão com o MongoDB.
-
${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}: As credenciais de acesso (usuário e senha) que são lidas a partir das variáveis de ambiente definidas.
-
@mongo:27017: Nome do serviço Docker onde o MongoDB está rodando, seguido pela porta padrão (27017).
-
/${MONGO_INITDB_DATABASE}: Nome do banco de dados que será acessado.
-
?authSource=admin: Especifica o banco de dados de autenticação (admin).