使用 Meteor Up 在 DigitalOcean 上部署 Meteor 应用程序时出错
Error Deploying Meteor App on DigitalOcean Using Meteor Up
我试图通过 IP 地址(我没有域名)将 Meteor 应用程序部署到 DigitalOcean Droplet 上。我是第一次做这种事情,所以遇到了很多问题。
这是我在 Digital Ocean 上的 droplet:
我使用 mup init
在我的 Meteor 应用程序的存储库之外创建了一个 MUP (Meteor Up) 目录,这是我拥有的 mup.js
文件:
module.exports = {
servers: {
one: {
host: '162.243.57.207',
username: 'cs673f16',
pem: '/Users/gautambhat/.ssh/id_rsa'
// password:
// or leave blank for authenticate from ssh-agent
}
},
meteor: {
name: 'meetcute',
path: '/Users/gautambhat/Repos/CS673_team2',
servers: {
one: {}
},
buildOptions: {
serverOnly: true,
},
env: {
ROOT_URL: 'http://162.243.57.207',
PORT : 3000
//MONGO_URL: 'mongodb://localhost/meteor'
},
//dockerImage: 'kadirahq/meteord'
deployCheckWaitTime: 60
},
mongo: {
oplog: true,
port: 27017,
servers: {
one: {},
},
},
};
此外,我不知道我的MONGO_URL,也不知道在哪里可以找到它,所以我只是把它注释掉了。在 运行 设置和 运行 mup deploy
之后,我得到了这个:
=> Starting meteor app on port:80
assert.js:93
throw new assert.AssertionError({
^
AssertionError: "undefined" === "function"
at wrapPathFunction (/bundle/bundle/programs/server/mini-files.js:77:10)
at Object.<anonymous> (/bundle/bundle/programs/server/mini-files.js:108:24)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/bundle/bundle/programs/server/boot.js:9:13)
at Module._compile (module.js:456:26)
-----------------------------------STDOUT-----------------------------------
在不同网站上进行了一些在线研究后,我找到了一个解决方法 here
新kadirahq/mup
默认的 dockerImage 是 meteorhacks/meteord:base 因此仍然使用 Node 0.10.43。如果有人从基础构建并发布了一个新图像,它可以很容易地交换。我已经继续并提供了一个 abernix/meteord:base 图像,并对 运行 Node 4.4.7 + 进行了必要的更改NPM 3 在更新发行版上的好处(jessie 而不是 wheezy)。我不确定这是否是 kadira 很快就会自己提供的东西。
您可以通过在 mup.js 中添加以下内容来使用我的图像,在 meteor 对象中(有关详细信息,请参阅文档),然后使用 mup deploy 重新部署:
dockerImage: 'abernix/meteord:base'
我试图通过 IP 地址(我没有域名)将 Meteor 应用程序部署到 DigitalOcean Droplet 上。我是第一次做这种事情,所以遇到了很多问题。
这是我在 Digital Ocean 上的 droplet:
我使用 mup init
在我的 Meteor 应用程序的存储库之外创建了一个 MUP (Meteor Up) 目录,这是我拥有的 mup.js
文件:
module.exports = {
servers: {
one: {
host: '162.243.57.207',
username: 'cs673f16',
pem: '/Users/gautambhat/.ssh/id_rsa'
// password:
// or leave blank for authenticate from ssh-agent
}
},
meteor: {
name: 'meetcute',
path: '/Users/gautambhat/Repos/CS673_team2',
servers: {
one: {}
},
buildOptions: {
serverOnly: true,
},
env: {
ROOT_URL: 'http://162.243.57.207',
PORT : 3000
//MONGO_URL: 'mongodb://localhost/meteor'
},
//dockerImage: 'kadirahq/meteord'
deployCheckWaitTime: 60
},
mongo: {
oplog: true,
port: 27017,
servers: {
one: {},
},
},
};
此外,我不知道我的MONGO_URL,也不知道在哪里可以找到它,所以我只是把它注释掉了。在 运行 设置和 运行 mup deploy
之后,我得到了这个:
=> Starting meteor app on port:80
assert.js:93
throw new assert.AssertionError({
^
AssertionError: "undefined" === "function"
at wrapPathFunction (/bundle/bundle/programs/server/mini-files.js:77:10)
at Object.<anonymous> (/bundle/bundle/programs/server/mini-files.js:108:24)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/bundle/bundle/programs/server/boot.js:9:13)
at Module._compile (module.js:456:26)
-----------------------------------STDOUT-----------------------------------
在不同网站上进行了一些在线研究后,我找到了一个解决方法 here
新kadirahq/mup
默认的 dockerImage 是 meteorhacks/meteord:base 因此仍然使用 Node 0.10.43。如果有人从基础构建并发布了一个新图像,它可以很容易地交换。我已经继续并提供了一个 abernix/meteord:base 图像,并对 运行 Node 4.4.7 + 进行了必要的更改NPM 3 在更新发行版上的好处(jessie 而不是 wheezy)。我不确定这是否是 kadira 很快就会自己提供的东西。 您可以通过在 mup.js 中添加以下内容来使用我的图像,在 meteor 对象中(有关详细信息,请参阅文档),然后使用 mup deploy 重新部署:
dockerImage: 'abernix/meteord:base'