我尝试在我的 docker-compose 文件上创建一个副本集,副本集成员已启动并正在运行,我也可以与 mongosh 连接 - 并且我可以运行 rs.status()。
但是我无法使用下面的连接字符串连接 mongoDB Compass。
当我尝试连接指南针时,出现此错误: getaddrinfo ENOTFOUND host.docker.internal
这是我的应用程序模块,其中包含连接字符串
'mongodb://localhost:27017,localhost:27018,localhost:27019/?replicaSet=rs0&serverSelectionTimeoutMS=2000',
{
maxStalenessSeconds: 120,
readPreference: 'secondaryPreferred',
},
)
这是我的 docker-compose 文件:
services:
mongo1:
image: mongo:7.0
command: ['--replSet', 'rs0', '--bind_ip_all', '--port', '27017']
ports:
- 27017:27017
healthcheck:
test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'localhost:27017',priority:1},{_id:1,host:'localhost:27018',priority:0.5},{_id:2,host:'localhost:27019',priority:0.5}]}) }" | mongosh --port 27017 --quiet
interval: 5s
timeout: 30s
start_period: 0s
start_interval: 1s
retries: 30
volumes:
- 'mongo1_data:/data/db'
- 'mongo1_config:/data/configdb'
mongo2:
image: mongo:7.0
command: ['--replSet', 'rs0', '--bind_ip_all', '--port', '27018']
ports:
- 27018:27018
volumes:
- 'mongo2_data:/data/db'
- 'mongo2_config:/data/configdb'
mongo3:
image: mongo:7.0
command: ['--replSet', 'rs0', '--bind_ip_all', '--port', '27019']
ports:
- 27019:27019
volumes:
- 'mongo3_data:/data/db'
- 'mongo3_config:/data/configdb'
volumes:
mongo1_data:
mongo2_data:
mongo3_data:
mongo1_config:
mongo2_config:
mongo3_config:
您现在能够解决这个问题吗?如果是这样,您能分享一下您的解决方案吗?因为我确实面临完全相同的问题,所以我会非常感兴趣:)