3

我在我的 Ubuntu 服务器(Digital Ocean)上运行了一个 Meteor 应用程序。我使用 Meteor Up (MUP) 来部署和保持应用程序运行。一切正常。

但是,当我尝试在同一台服务器上部署第二个应用程序时,连接到 MongoDB 时出现问题。我收到一条长且不可读的错误消息,开头为“调用部署过程:失败”,然后以

Waiting for MongoDB to initialize. (5 minutes)
connected
myapp start/running, process 25053
Waiting for 15 seconds while app is booting up
Checking is app booted or not?
myapp stop/waiting
myapp start/running, process 25114

该应用程序拒绝运行。我已经尝试了很多方法来解决这个问题,如果需要更多信息,我会编辑这篇文章,但我不确定什么是相关的。本质上我不明白错误消息,所以我需要知道到底发生了什么?

编辑:我想补充一点,如果我进入项目文件夹并使用“流星”命令,我的应用程序运行良好。一切都按预期运行。只有当我尝试使用 MUP 将其部署为长期生产模式时,我才会收到此错误。

编辑:我继续尝试 mupx 而不是 mup。这次我什至无法通过安装过程,我收到以下错误消息:

[Neal] x Installing MongoDB: FAILED

-----------------------------------STDERR-----------------------------------
Error response from daemon: no such id: mongodb
Error: failed to remove containers: [mongodb]
Error response from daemon: Cannot start container c2c538d34c15103d1d07bcc60b56a54bd3d23e50ae7a8e4f9f7831df0d77dc56: failed to create endpoint mongodb on network bridge: Error starting userland proxy: listen tcp 127.0.0.1:27017: bind: address already in use

但我不明白为什么!Mongod 显然已经在端口 27017 上运行,第二个应用程序应该只是向该实例添加一个新数据库,对吗?我不知道我在这里缺少什么,为什么 MUP 无法访问 MongoDB。

4

1 回答 1

1

没有你mup.json看这里发生了什么是很棘手的。鉴于您所说的,您的第二个应用程序部署似乎试图覆盖/引导 mongodb 超过第一个被锁定的应用程序,mongodb 环境无法启动,然后导致失败。你应该以不同的方式解决这个问题:

  • 如果您的目标是共享您的 mongoDB,请将您的第二个 MONGO_URL 指向您的第mup.jon一个 mongodb 实例。它通常是沿2701X港口的东西。由于它是一个共享数据库,因此一个数据库中的更改可能会影响另一个数据库。
  • meteor-up 监督你的应用程序从一个很好测试的流星到 node+mongodb 环境的部署。您可以使用 : 在您的 DO 服务器上生成另一个 mongod 实例, mongod --port 2701X --dbpath /your/dbpath --fork --logpath /log/path然后指向MONGO_URL那里。
  • 最后但并非最不重要的一点是,mupxdocker引擎盖下。使用mupx进行部署应该将两个应用程序相互隔离。
于 2016-02-02T20:36:49.073 回答