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 ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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: