如何解决无法在Digital Ocean上将容器应用程序与mongodb连接
这是问题。
我有一个MERN应用程序,已容器化并托管在Digital Ocean Droplet上。另外,我在同一droptlet中(容器外部)安装了mongodb。要将容器应用程序与mongo连接,我必须更新/etc/mongodb.conf
并按照建议的here将连接绑定到172.17.0.1
mongodb.conf:
...
bind_ip = 0.0.0.0
#port = 27017
...
docker run脚本应用程序:
$ docker run -it -p 3001:3001 -e DB_HOST=mongodb://172.17.0.1:27017 --name container-app image:1.0-alpine
在这里,一切正常,并且可以正常工作...但是,此后,我创建了一个用户来保护角色readWrite
和userAdminAnyDatabase
的mongo连接,现在,该用户无法使用新连接mongodb://user:pass@172.17.0.1:27017
对我来说最奇怪的事情是,我使用mongoDBCompass连接到数据库,运行迁移,并且,如果我可以连接到mongoshell(液滴)。
$ mongo -u admin -p --authenticationDatabase admin
错误控制台打印
Error connecting to the database
MongooseServerSelectionError: connect ECONNREFUSED 172.17.0.1:27017
at NativeConnection.Connection.openUri (/usr/autopago/back/node_modules/mongoose/lib/connection.js:800:32)
at Mongoose.connect (/usr/app/back/node_modules/mongoose/lib/index.js:339:15)
at connect (/usr/app/back/libraries/mongodb.js:5:14)
at Object.<anonymous> (/usr/app/back/app.js:24:1)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Module.require (internal/modules/cjs/loader.js:1025:19)
at Module.Hook._require.Module.require (/usr/local/lib/node_modules/pm2/node_modules/require-in-the-middle/index.js:80:39)
at require (internal/modules/cjs/helpers.js:72:18)
at Object.<anonymous> (/usr/app/back/index.js:2:13)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14) {
reason: TopologyDescription {
type: 'Single',setName: null,maxSetVersion: null,maxElectionId: null,servers: Map { '172.17.0.1:27017' => [ServerDescription] },stale: false,compatible: true,compatibilityError: null,logicalSessionTimeoutMinutes: null,heartbeatFrequencyMS: 10000,localThresholdMS: 15,commonWireVersion: null
}
}
配置中是否缺少某些内容?我已经阅读了几个博客,但找不到解决方案。希望有人能帮忙!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。