node.js - kadirahq/mup 验证部署失败

标签 node.js meteor npm digital-ocean meteor-up

我正在尝试使用 kadirahq/mup 部署我的应用程序,在 Ubuntu 上16.04 ,到同样运行 Ubuntu 的 Digital Ocean Droplet 16.04 。 我的应用程序位于 Meteor 1.4.1.1 ,并使用 Node 4.5.0 进行报告。 我的机器的 Node 版本是6.6.0 .

我读了mup faq并试图增加 deployCheckWaitTime ,并尝试使用高达 2000 的值,没有变化。

在使用旧版本的 mup 之前,我已成功将此应用程序部署到此 Droplet和mupx ,但开始遇到问题并决定升级到新版本。

我还收到有关 js-bson 的提示,我在这里记录了并且似乎可能相关: Meteor: js-bson: Failed to load c++ bson extension, using pure JS version

我最初使用dockerImage: 'kadirahq/meteord' ,但读完this issue comment by abernix后我把它改为dockerImage: 'abernix/meteord:base' ,它成功解决了该问题,但用这个问题取代了它。

当我运行mup setup时,一切运行成功。 mup deploy成功运行所有步骤,直到验证部署步骤:

(node:2785) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: 

它吐出上面的内容,然后在日志中吐出一堆内容,所以我把它们放在下面。

mup logs --tail=200的输出很大并且每次运行时都会发生变化,但这里减少了我或多或少认为它重复的内容:

Error: $ROOT_URL, if specified, must be an URL
        at Error (native)
        at packages/meteor/url_server.js:8:1
        at packages/meteor/url_server.js:19:1
        at /bundle/bundle/programs/server/packages/meteor.js:1365:3
        at /bundle/bundle/programs/server/boot.js:292:10
        at Array.forEach (native)
        at Function._.each._.forEach (/bundle/bundle/programs/server/node_modules/underscore/underscore.js:79:11)
        at /bundle/bundle/programs/server/boot.js:128:5

> meteor-dev-bundle@0.0.0 install /bundle/bundle/programs/server
> node npm-rebuild.js


> bson@0.2.21 install /bundle/bundle/programs/server/npm/node_modules/meteor/cfs_gridfs/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)

make: Entering directory '/bundle/bundle/programs/server/npm/node_modules/meteor/cfs_gridfs/node_modules/mongodb/node_modules/bson/build'
  CXX(target) Release/obj.target/bson/ext/bson.o
bson.target.mk:94: recipe for target 'Release/obj.target/bson/ext/bson.o' failed
make: Leaving directory '/bundle/bundle/programs/server/npm/node_modules/meteor/cfs_gridfs/node_modules/mongodb/node_modules/bson/build'

> kerberos@0.0.9 install /bundle/bundle/programs/server/npm/node_modules/meteor/cfs_gridfs/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)

make: Entering directory '/bundle/bundle/programs/server/npm/node_modules/meteor/cfs_gridfs/node_modules/mongodb/node_modules/kerberos/build'
  CXX(target) Release/obj.target/kerberos/lib/kerberos.o
kerberos.target.mk:100: recipe for target 'Release/obj.target/kerberos/lib/kerberos.o' failed
make: Leaving directory '/bundle/bundle/programs/server/npm/node_modules/meteor/cfs_gridfs/node_modules/mongodb/node_modules/kerberos/build'

// references to a million node modules

> bcrypt@0.8.7 install /bundle/bundle/programs/server/npm/node_modules/bcrypt
> node-gyp rebuild

make: Entering directory '/bundle/bundle/programs/server/npm/node_modules/bcrypt/build'
  CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o
  CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt.o
  CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt_node.o
  SOLINK_MODULE(target) Release/obj.target/bcrypt_lib.node
  COPY Release/bcrypt_lib.node
make: Leaving directory '/bundle/bundle/programs/server/npm/node_modules/bcrypt/build'
bcrypt@0.8.7 /bundle/bundle/programs/server/npm/node_modules/bcrypt

// references to a million different node modules

{
  "meteor-dev-bundle": "0.0.0",
  "npm": "3.10.5",
  "ares": "1.10.1-DEV",
  "http_parser": "2.5.2",
  "icu": "56.1",
  "modules": "46",
  "node": "4.4.7",
  "openssl": "1.0.2h",
  "uv": "1.8.0",
  "v8": "4.5.103.36",
  "zlib": "1.2.8"
}
npm WARN meteor-dev-bundle@0.0.0 No description
npm WARN meteor-dev-bundle@0.0.0 No repository field.
npm WARN meteor-dev-bundle@0.0.0 No license field.
=> Starting meteor app on port:80
/bundle/bundle/programs/server/boot.js:333
}).run();

以下是我的 .deploy/mup.js 的相关部分文件:

meteor: {
    name: 'boxes',
    path: '/home/blaine/Business/Boxes/boxes/',
    servers: {
        one: {}
    },
    buildOptions: {
        serverOnly: true,
    },
    env: {
        ROOT_URL: 'example.com',
        MONGO_URL: 'mongodb://localhost/meteor'
    },

    // dockerImage: 'kadirahq/meteord'
    dockerImage: 'abernix/meteord:base',
    deployCheckWaitTime: 60
},

mongo: {
    oplog: true,
    port: 27017,
    servers: {
        one: {},
    },
},

我还尝试删除我正在运行的 bcrypt 包 meteor npm uninstall bcrypt并将其从我的 package.json 中删除依赖项:"bcrypt": "^0.8.7" ,并通过查看我的 node_modules 目录来验证它是否已消失。我将其替换为 meteor bcrypt package 。没有变化。

最佳答案

事实证明这比看起来简单得多。与大型 Node 模块相关的输出有点转移注意力,我认为就是这样。但是,相关部分是这样的:错误:$ROOT_URL,如果指定,必须是 URL

我的 ROOT_URL 没有包含 http:// 协议(protocol)。添加它解决了问题。

关于node.js - kadirahq/mup 验证部署失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39650959/

相关文章:

node.js - 如何使用 meteor 弹弓正确上传到Amazon S3?

javascript - 无法安装 jest

node.js - 仅从 Travis 向 Coveralls 发送数据,而不是在本地测试时

javascript - 错误: Unable to find module 'opennebula' (Meteor.JS)

angularjs - Node.js 未满足对等依赖关系的 Angular 核心和 Angular http

javascript - 在 Meteor.js 中显示来自对象的 FS.File 引用

node.js - 从异步回调将唯一项插入到 Meteor 集合中

javascript - 读取文件以在快速路径中使用

node.js - 我应该将每秒 POST 速率限制为多少?

javascript - Meteor 中的嵌套助手? - 如何使用一个助手的输出作为另一助手的输入?