我发现在开发环境中运行的工作人员存在一些问题,需要自定义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
任何人都知道如何在运行时将其设置为生产?
答案 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使用。