根据 Meteor 的 documentation ,我们可以通过命令行包含一个设置文件来提供特定于部署的设置。
然而,--settings
选项似乎只能通过 run
获得和 deploy
命令。如果我在自己的基础架构上运行 Meteor 应用程序 - 如 documentation 的在您自己的基础架构上运行部分所述- 似乎没有办法在过程中的任何地方指定特定于部署的设置文件。
有没有办法在生产环境中访问 Meteor 设置,在我自己的基础设施上运行?
最佳答案
是的,将设置内容包含在环境变量中 METEOR_SETTINGS
.例如,
export METEOR_SETTINGS='{"privateKey":"MY_KEY", "public":{"publicKey":"MY_PUBLIC_KEY", "anotherPublicKey":"MORE_KEY"}}'
然后正常运行 meteor 应用程序。
这将填充 Meteor.settings 对象已正常。对于上面的设置,
Meteor.settings.privateKey == "MY_KEY" #Only on server
Meteor.settings.public.publicKey == "MY_PUBLIC_KEY" #Server and client
Meteor.settings.public.anotherPublicKey == "MORE_KEY" #Server and client
对于我们的 project ,我们使用 upstart脚本并将其包含在那里(尽管 upstart 的语法略有不同)。但是,如果您使用普通的 shell 脚本启动它,您只需要包含
export
node 命令之前的语句。例如,您可以使用如下脚本:export METEOR_SETTINGS='{"stuff":"real"}'
node /path/to/bundle/main.js
或者
METEOR_SETTINGS='{"stuff":"real"}' node /path/to/bundle/main.js
您可以找到有关 bash 变量的更多信息 here .
关于settings - 在自有生产环境中访问 Meteor 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16090281/