使用Capistrano工头环境部署Rails 4

时间:2013-12-07 07:40:23

标签: ruby-on-rails foreman

我发现在开发环境中运行的工作人员存在一些问题,需要自定义foreman导出任务,以便以某种方式将ENV设置为生产:

  task :export_worker, roles: :worker do
    foreman_export = "foreman export --app #{application} --user #{user} --concurrency worker=3,worker_slow=2,clock=1 --log #{shared_path}/log upstart /etc/init"
    run "cd #{current_path} && #{sudo} #{bundle_cmd} exec #{foreman_export}"
  end

任何人都知道如何在运行时将其设置为生产?

1 个答案:

答案 0 :(得分:3)

Foreman有an environment option可用于加载自定义.env文件。您可以尝试使用它将环境设置为生产。

例如,如果您有一个包含以下内容的development.env文件:

RAILS_ENV=development

你可以让Foreman像这样加载它:

foreman export -e development.env -c worker=3,worker_slow=2,clock=1 upstart /etc/init

然后,如果您需要引用Procfile中的环境(示例假定sidekiq worker):

worker: bundle exec sidekiq --environment $RAILS_ENV

Heroku有a nice article设置.env文件以供Foreman使用。