【问题标题】:Accessing Meteor Settings in a Self-Owned Production Environment在自有生产环境中访问 Meteor 设置
【发布时间】:2013-04-18 18:13:23
【问题描述】:

根据 Meteor 的documentation,我们可以通过命令行包含一个设置文件来提供特定于部署的设置。

但是,--settings 选项似乎只能通过rundeploy 命令使用。如果我在自己的基础架构上运行 Meteor 应用程序 - 如documentation在您自己的基础架构上运行 部分所述 - 似乎没有办法指定特定于部署的设置文件在进程中的任何位置。

有没有办法在生产环境中访问 Meteor 设置,在我自己的基础架构上运行?

【问题讨论】:

    标签: settings meteor production-environment


    【解决方案1】:

    是的,将设置内容包含在环境变量METEOR_SETTINGS 中。例如,

    export METEOR_SETTINGS='{"privateKey":"MY_KEY", "public":{"publicKey":"MY_PUBLIC_KEY", "anotherPublicKey":"MORE_KEY"}}'

    然后正常运行流星应用程序。

    这将填充 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 语句。例如,您可以有如下脚本:

    export METEOR_SETTINGS='{"stuff":"real"}'
    node /path/to/bundle/main.js
    

    METEOR_SETTINGS='{"stuff":"real"}' node /path/to/bundle/main.js

    你可以找到更多关于 bash 变量的信息here

    【讨论】:

    • 那么,在代码中Meteor.settings.privateKey 会按预期工作吗?
    • 太棒了。所以,我猜导出语句在你的代码中?您在代码库中是否有放置该语句的特定位置?
    • 是的,把它放在你用来启动流星进程的任何初始化脚本中,或者在启动命令前加上它。我已经编辑回答以解释更多。
    • 欣赏解释。
    • 以上是否会排除 MONGO_URL、ROOT_URL?我已经尝试了上述方法并得到了这个 - “错误:必须在环境中设置 MONGO_URL”。我导出,使用它获取了一个 bash 文件,在命令行上运行它,在我明确定义 export MONGO_URL=... 之前似乎没有任何效果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 2017-10-06
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多