【问题标题】:Meteor Galaxy Deployment fails - Containers crashingMeteor Galaxy 部署失败 - 容器崩溃
【发布时间】:2018-01-22 06:29:58
【问题描述】:

我正在使用 Meteor Blaze,现在想通过 Meteor Galaxy 部署我的应用程序。一切都在本地主机上运行。

现在,我尝试将我的应用从 Windows 计算机部署到 Galaxy。

不幸的是,我总是收到以下错误日志并且容器正在崩溃:

2017-08-14 11:50:38+02:00/app/bundle/programs/server/node_modules/fibers/future.js:313
2017-08-14 11:50:38+02:00   throw(ex);
2017-08-14 11:50:38+02:00   ^
2017-08-14 11:50:39+02:00MongoError: not authorized on admin to execute command { listIndexes: “users”, cursor: { } }
2017-08-14 11:50:39+02:00 at Object.Future.wait (/app/bundle/programs/server/node_modules/fibers/future.js:449:15)
2017-08-14 11:50:39+02:00 at [object Object].MongoConnection._ensureIndex (packages/mongo/mongo_driver.js:832:10)
2017-08-14 11:50:39+02:00 at [object Object].Mongo.Collection._ensureIndex (packages/mongo/collection.js:686:20)
2017-08-14 11:50:39+02:00 at setupUsersCollection (packages/accounts-base/accounts_server.js:1490:9)
2017-08-14 11:50:39+02:00 at new AccountsServer (packages/accounts-base/accounts_server.js:51:5)
2017-08-14 11:50:39+02:00 at meteorInstall.node_modules.meteor.accounts-base.server_main.js (packages/accounts-base/server_main.js:9:12)
2017-08-14 11:50:39+02:00 at fileEvaluate (packages/modules-runtime.js:333:9)
2017-08-14 11:50:39+02:00 at require (packages/modules-runtime.js:228:16)
2017-08-14 11:50:39+02:00 at /app/bundle/programs/server/packages/accounts-base.js:2038:15
2017-08-14 11:50:39+02:00 at /app/bundle/programs/server/packages/accounts-base.js:2049:3
2017-08-14 11:50:39+02:00 - - - - -
2017-08-14 11:50:39+02:00 at Function.MongoError.create (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/error.js:31:11)
2017-08-14 11:50:39+02:00 at queryCallback (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/cursor.js:212:36)
2017-08-14 11:50:39+02:00 at /app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:469:18
2017-08-14 11:50:39+02:00 at nextTickCallbackWith0Args (node.js:489:9)
2017-08-14 11:50:39+02:00 at process._tickCallback (node.js:418:13)
2017-08-14 11:50:39+02:00 Application exited with code: 1
2017-08-14 11:50:44+02:00 The container has crashed. A new container will be started to replace it.

它与我启动应用程序或部署应用程序时创建的“dev_bundle”文件夹有关吗?还是我必须在settings.json 文件的环境变量中搜索错误?

我使用的是 MongoDB Atlas,连接字符串的结构与 mongoDB Atlas 提供的相同。 settings.json 文件如下所示:

{
  "galaxy.meteor.com": {
    "env": {
      "ROOT_URL": "http://myapp.eu.meteorapp.com", 
      "MONGO_URL": "mongodb://<myUsername>:<password>@<clusterName>-shard-00-00-<xxxxx>.mongodb.net:27017,<clusterName>-shard-00-01-<xxxxx>.mongodb.net:27017,<clusterName>-shard-00-02-<xxxxx>.mongodb.net:27017/admin?ssl=true&replicaSet=<clusterName>-shard-0&authSource=admin",
      "MONGO_OPLOG_URL": "mongodb://<myUsernameForOplog>:<password>@<clusterName>-shard-00-00-<xxxxx>.mongodb.net:27017,<clusterName>-shard-00-01-<xxxxx>.mongodb.net:27017,<clusterName>-shard-00-02-<xxxxx>.mongodb.net:27017/local?ssl=true&replicaSet=<clusterName>-shard-0&authSource=admin"
    }
  }

}  

【问题讨论】:

    标签: javascript meteor deployment meteor-blaze meteor-accounts


    【解决方案1】:

    你的错误是:

    MongoError: 管理员未授权执行命令 { listIndexes: “users”, cursor: { } }

    您的MONGO_URL 好像有误,您能分享一下吗(不包括关键信息:凭据等)?

    添加:

    您正在尝试读取/写入admin DB,但您应该创建自己的数据库,例如meteor

    这是您的MONGO_URL 的外观:

    mongodb://.../meteor?ssl=true&replicaSet=...&authSource=admin
    

    你的MONGO_OPLOG_URL很好,不用改。

    【讨论】:

    • 是的,谢谢。这可能是问题所在,但我不知道MONGO_URL 中的失败可能在哪里。我编辑了我的帖子并添加了带有所有连接字符串的 settings.json 文件。
    • 更新了我的答案。
    • 太棒了!非常感谢,花一整天的时间。你是对的,我通过 mongoDBAtlas 创建了另一个拥有自己数据库的用户,现在它可以工作了。
    猜你喜欢
    • 2015-07-10
    • 2017-03-01
    • 1970-01-01
    • 2018-03-03
    • 2016-06-30
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    相关资源
    最近更新 更多