我有一个小型的Sinatra应用程序,在运行Nginx的单个服务器上具有暂存和生产环境。 要部署,我正在使用Capistrano和capistrano-ext轻松部署到不同的位置。
暂存环境始终使用 app.rb 文件中指定的生产配置运行的问题。
configure :staging do
# staging settings
set :foo, "bar" # will never be set to this
end
configure :production do
# prod settings
set :foo, "rab"
end
我得出的结论是,deploy.rb 文件中的 capistrano :environment 变量不会以任何方式配置 Sinatra。 我也尝试将 ENV["RACK_ENV"] 设置为"暂存"无济于事。
config/deploy/staging.rb
server "10.10.100.16", :app, :web, :db, :primary => true
set :deploy_to, "/var/www/staging.my_app"
set :environment, "staging"
set :env, "staging"
ENV["RACK_ENV"] = "staging"
有什么想法吗?
**更新:我应该补充一点,我也在使用乘客。
nginx中设置rack_env变量似乎可以解决问题。
http://www.modrails.com/documentation/Users%20guide%20Nginx.html#RackEnv