使用AWS Opsworks自定义node.js start命令

时间:2014-03-05 12:22:42

标签: node.js amazon-web-services chef aws-opsworks

让Opsworks使用命令NODE_ENV=production node server.js启动应用程序的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

最佳解决方案:在Chef 11.10堆栈中使用环境值。 Opsworks Environment Variables Reference

替代方案:

默认情况下,目前不支持此选项作为环境选项。所以你需要添加它。

我假设您正在使用最新的Chef 11.4烹饪书。

修改(第2行):

opsworks_nodejs/templates/default/node_web_app.monitrc.erb

FROM:

start program = "/bin/sh -c 'cd <%= @deploy[:deploy_to] %>/current; /usr/bin/env NODE_PATH=<%= @deploy[:deploy_to] %>/current/node_modules:<%= @deploy[:deploy_to] %>/current /usr/local/bin/node <%= @monitored_script %>'"

TO:

start program = "/bin/sh -c 'cd <%= @deploy[:deploy_to] %>/current; /usr/bin/env NODE_PATH=<%= @deploy[:deploy_to] %>/current/node_modules:<%= @deploy[:deploy_to] %>/current NODE_ENV=production /usr/local/bin/node <%= @monitored_script %>'"

我对官方食谱进行了一系列修改,然后提出拉动请求将其添加到官方食谱中。如果您愿意 - 您可以查看更改:https://github.com/nappa32/opsworks-cookbooks/tree/add_support_for_node_env_for_expre