Tenho uma aplicação( rodando no docker-compose ) em nestjs, mongo e prisma, porém o prisma precisa de um replica-set para fazer as transações do mongo. Alguém poderia me ajudar como devo proseguir para criar isso tudo em um .yml ?
Tenho uma aplicação( rodando no docker-compose ) em nestjs, mongo e prisma, porém o prisma precisa de um replica-set para fazer as transações do mongo. Alguém poderia me ajudar como devo proseguir para criar isso tudo em um .yml ?
Olá Gabriel!
Para criar um replica-set do MongoDB no docker-compose, você pode adicionar um serviço para cada instância do MongoDB que deseja incluir no replica-set. Cada serviço deve ter uma configuração específica para definir o papel de cada instância no replica-set.
Aqui está um exemplo de como você pode configurar o seu arquivo docker-compose.yml para criar um replica-set com três instâncias do MongoDB:
version: '3'
services:
mongo1:
image: mongo
command: mongod --replSet rs0
ports:
- 27017:27017
volumes:
- ./data/mongo1:/data/db
networks:
- mongo-network
mongo2:
image: mongo
command: mongod --replSet rs0
ports:
- 27018:27017
volumes:
- ./data/mongo2:/data/db
networks:
- mongo-network
mongo3:
image: mongo
command: mongod --replSet rs0
ports:
- 27019:27017
volumes:
- ./data/mongo3:/data/db
networks:
- mongo-network
networks:
mongo-network:
driver: bridge
Neste exemplo, cada serviço mongo1
, mongo2
e mongo3
representa uma instância do MongoDB. O parâmetro command
é usado para iniciar cada instância com a opção --replSet rs0
, que define o nome do replica-set como "rs0".
Certifique-se de criar os diretórios ./data/mongo1
, ./data/mongo2
e ./data/mongo3
no mesmo diretório do seu arquivo docker-compose.yml para persistir os dados do MongoDB.
Depois de configurar o arquivo docker-compose.yml, você pode executar o comando docker-compose up
para iniciar o replica-set.
Bons estudos!
Bom dia Lucas e obrigado pela força !
Pode me dizer se consigo utilizar somente um container mongo como replica-set ?
Meu docker-compose.yml com o mongo( o nejst js está separado em outro arquivo e está compartilhando da mesma rede mongo ):
Aqui o erro que recebo quando utilizar o comando npx prisma db push: