MongoDB, репликация в одном докер контейнере
Хотел в монго включить транзакции, столкнулся с тем, что они работают только при включенной репликации.
Теперь пытаюсь сделать ее.
Использую такой docker-compose файл:
version: '3.4'
services:
mongodbClustered:
hostname: mongodb
container_name: mongodbClustered
image: mongo:latest
environment:
MONGO_INITDB_DATABASE: admin
MONGO_REPLICA_SET_NAME: rs0
expose:
- 27017
ports:
- 27020:27017
restart: always
healthcheck:
test: test $$(echo "rs.initiate().ok || rs.slaveOk().ok || rs.status().ok" | mongo --quiet) -eq 1
interval: 10s
start_period: 30s
entrypoint: [ "/usr/bin/mongod", "--bind_ip_all", "--replSet", "rs0" ]
Пытаюсь подключится через mongoose:
const mongoURI = `mongodb://192.168.0.111:27020/admin?replicaSet=rs0`;
mongoose.connect(mongoURI,
{useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false});
И после этого получаю вот это: https://pastebin.com/0xKpLarc
Может проблема в том, что я прокидую порты в докер, как 27020:27017, а не 27017:27017? (Не могу проверить, там другое приложение крутится)