【发布时间】:2015-02-17 13:40:47
【问题描述】:
我正在使用带有 docker 的 sane 设置一个项目。创建项目以使用 mongodb 并创建资源后,我尝试运行它,但收到错误报告,服务器容器无法连接到 mongo。然后我尝试运行fig up 看看它是否是一个无花果问题并得到了同样的错误。这是我的fig.yml(已删除无关的 cmets):
db:
image: mongo:latest
ports:
- "27017:27017"
server:
image: artificial/docker-sails:stable-pm2
command: sails lift
volumes:
- server/:/server
ports:
- "1337:1337"
links:
- db
fig up 的完整错误报告如下(sane up 的错误报告是一样的,虽然db_1 的输出更简洁,并且还有几行输出给客户端):
Recreating hydro_db_1...
Recreating hydro_server_1...
Attaching to hydro_db_1, hydro_server_1
db_1 | mongod --help for help and startup options
db_1 | 2015-02-17T13:32:00.092+0000 [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=b7a85ddb94e2
db_1 | 2015-02-17T13:32:00.093+0000 [initandlisten] db version v2.6.7
db_1 | 2015-02-17T13:32:00.094+0000 [initandlisten] git version: a7d57ad27c382de82e9cb93bf983a80fd9ac9899
db_1 | 2015-02-17T13:32:00.094+0000 [initandlisten] build info: Linux build7.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
db_1 | 2015-02-17T13:32:00.094+0000 [initandlisten] allocator: tcmalloc
db_1 | 2015-02-17T13:32:00.094+0000 [initandlisten] options: {}
db_1 | 2015-02-17T13:32:00.099+0000 [initandlisten] journal dir=/data/db/journal
db_1 | 2015-02-17T13:32:00.099+0000 [initandlisten] recover : no journal files present, no recovery needed
db_1 | 2015-02-17T13:32:00.274+0000 [initandlisten] waiting for connections on port 27017
server_1 |
server_1 | info: Starting app...
server_1 |
server_1 | error: A hook (`orm`) failed to load!
server_1 | error: Error: Failed to connect to MongoDB. Are you sure your configured Mongo instance is running?
server_1 | Error details:
server_1 | [Error: failed to connect to [localhost:27017]]
server_1 | at _createError (/server/node_modules/sails-mongo/lib/adapter.js:98:23)
server_1 | at /server/node_modules/sails-mongo/lib/adapter.js:101:13
server_1 | at /server/node_modules/sails-mongo/lib/connection.js:25:20
server_1 | at /server/node_modules/sails-mongo/node_modules/mongodb/lib/mongodb/mongo_client.js:406:11
server_1 | at process._tickDomainCallback (node.js:486:13) { [Error: Failed to connect to MongoDB. Are you sure your configured Mongo instance is running?
server_1 | Error details:
server_1 | [Error: failed to connect to [localhost:27017]]]
server_1 | originalError: [Error: failed to connect to [localhost:27017]] }
server_1 | error: Error: Failed to connect to MongoDB. Are you sure your configured Mongo instance is running?
server_1 | Error details:
server_1 | [Error: failed to connect to [localhost:27017]]
server_1 | at _createError (/server/node_modules/sails-mongo/lib/adapter.js:98:23)
server_1 | at /server/node_modules/sails-mongo/lib/adapter.js:101:13
server_1 | at /server/node_modules/sails-mongo/lib/connection.js:25:20
server_1 | at /server/node_modules/sails-mongo/node_modules/mongodb/lib/mongodb/mongo_client.js:406:11
server_1 | at process._tickDomainCallback (node.js:486:13) { [Error: Failed to connect to MongoDB. Are you sure your configured Mongo instance is running?
server_1 | Error details:
server_1 | [Error: failed to connect to [localhost:27017]]]
server_1 | originalError: [Error: failed to connect to [localhost:27017]] }
hydro_server_1 exited with code 1
Gracefully stopping... (press Ctrl+C again to force)
Stopping hydro_db_1...
我不确定这是 docker 问题、无花果问题、理智问题还是风帆问题。我也不知道怎么解决。
【问题讨论】:
-
看起来
localhost需要替换为 mongo 容器 IP,您应该可以从环境变量中获取该 IP。 -
当然!现在我觉得自己像个白痴......实际上在我的情况下,它就像将主机设置为
db一样简单。感谢您指出这一点,如果您将其发布为答案,我会接受它 -
没问题,我不确定它看起来是否简单 :)
标签: mongodb docker sails.js sails-mongo fig