我正在尝试使用kadirahq/mup
在Ubuntu 16.04
上将我的应用部署到运行Ubuntu 16.04
的Digital Ocean Droplet。
我的应用位于Meteor 1.4.1.1
,并使用节点4.5.0
进行报告。
我的计算机的节点版本位于6.6.0
。
我阅读mup faq并尝试增加deployCheckWaitTime
,并尝试使用高达2000
的值,但没有任何变化。
在使用旧版mup
和mupx
之前,我已成功将此应用部署到此Droplet,但开始出现问题并决定升级到新版本。
我也有关于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: {},
},
},
我还尝试删除运行meteor npm uninstall bcrypt
的bcrypt包,并将其从我的package.json
依赖项"bcrypt": "^0.8.7"
中删除,并通过查看我的node_modules验证它已经消失了目录。我用meteor bcrypt package替换了它。没有变化。
答案 0 :(得分:1)
事实证明这比看起来要简单得多。大节点模块相关的输出是一个红色的鲱鱼,我认为是这样。但是,相关部分是:Error: $ROOT_URL, if specified, must be an URL
。
我的ROOT_URL
未包含http://
协议。添加它解决了这个问题。
答案 1 :(得分:0)
对于未来的谷歌点击,我想补充一点,您的部署机器资源(RAM,CPU)将在您能够成功部署的过程中发挥作用。
我的问题是我的数字海洋水滴的大小,但尝试部署时的错误在任何方面都不直观..