用 mup 部署 Meteor app 到阿里云 ECS 上怎么填写配置文件 mup.js ?

mup介绍: GitHub - kadirahq/meteor-up: Production Quality Meteor Deployment to…
关注者
11
被浏览
1,384
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

看来我得自己回答自己的问题了,给以后需要帮助人的看吧。

今天双11,刚在阿里云ECS上买了个1核2G的Ubuntu 14.04 64位服务器,半价702RMB一年。我的 Meteor 版本是1.4.2.1,React 前端。

经过了一些波折,最后还是部署成功,我一开始的 mup.js 配置文件是这样的:


刚执行 mup setup 等了一会儿,就遇到的第一个问题,下载docker太慢报错:


解决方案是直接通过阿里云连接进入主机,手动执行 apt-get install -y -q docker-engine (错误信息中有提示),手动进去安装的速度还挺快,安装好再执行 mup setup 成功:


紧接着执行 mup deploy,遇到第二个错误,装不了npm:


继续远程进入主机,手动执行 apt-get install npm,又安装成功:


之后再执行 mup deploy,遇到第三个错误,AssertionError: "undefined" === "function":




查了一下发现Github(

[meteor 1.4] AssertionError: "undefined" === "function" · Issue #1091 · arunoda/meteor-up · GitHub

)上很多人有同样的问题,是 mup 支持 meteor 1.4 需要 docker image 用 abernix/meteord:base 格式,所以只要把 mup.js 里面相关的字段改掉就好:


再来一次 mup deploy,这个错过去了,但是新错又出现了!


mup 验证部署的时候 curl 服务器没有响应,它认为是部署失败了,检查 mup logs 发现原来配置文件里的 ROOT_URL: 'oneshot.io' 格式错误,需要加上http或者https,但 mup 默认的可没有加啊!但是改成 ROOT_URL: 'http:// oneshot.io' 终于可以了!以下是我最终的 mup.js 配置文件内容。


之后其实又 mup deploy 又报了一个 curl 没响应的错,但这可能是因为它默认60秒以后检测部署,但这个时候服务器还没有准备好。因为我又看了一下 mup logs,刚才的 ROOT_URL 错误已经消失。再打开浏览器,app已经部署上去了!

希望本篇对后来者有所帮助!