私はこの宝石をしばらく使用しており、実際のステージング環境をステージング サーバーにデプロイしようと試みたところ、問題が発生しました。Unicorn はコマンドから開始し、unicorn_rails
すべて-E production
の設定が正しいにもかかわらずです。
deploy.rb で、unicorn_bin 変数が unicorn_rails として設定されていることに気付きました。deploy.rb でこの設定を取り出しました。ただし、 unicorn:duplicate はunicorn_rails
、デフォルトが である必要がある場合でも、コマンドを実行しますunicorn
。
マルチステージ セットアップ wiki ドキュメントで概説されているように、私の変数はすべて deploy/staging.rb でステージングに設定されていますが、-E がまだ運用環境に設定されていることに気付きました。
関連情報:
デプロイ後の unicorn.log ファイルからの出力は次のとおりです。
executing ["/var/www/apps/myapp/shared/bundle/ruby/2.0.0/bin/unicorn_rails", "-c", "/var/www/apps/bundio/current/config/unicorn.rb", "-E", "production", "-D", {12=>#<Kgio::UNIXServer:/tmp/bundio.socket>, 13=>#<Kgio::TCPServer:fd 13>}] (in /var/www/apps/bundio/current)
これが出力ですcap -T
(デフォルトはステージング)
# Environments
rails_env "staging"
unicorn_env "staging"
unicorn_rack_env "staging"
# Execution
unicorn_user nil
unicorn_bundle "/usr/local/rvm/gems/ruby-2.0.0-p247@global/bin/bundle"
unicorn_bin "unicorn"
unicorn_options ""
unicorn_restart_sleep_time 2
# Relative paths
app_subdir ""
unicorn_config_rel_path "config"
unicorn_config_filename "unicorn.rb"
unicorn_config_rel_file_path "config/unicorn.rb"
unicorn_config_stage_rel_file_path "config/unicorn/staging.rb"
# Absolute paths
app_path "/var/www/apps/myapp/current"
unicorn_pid "/var/www/apps/myapp/shared/pids/unicorn.myapp.pid"
bundle_gemfile "/var/www/apps/myapp/current/Gemfile"
unicorn_config_path "/var/www/apps/myapp/current/config"
unicorn_config_file_path "/var/www/apps/myapp/current/config/unicorn.rb"
unicorn_config_stage_file_path
-> "/var/www/apps/myapp/current/config/unicorn/staging.rb"
もう 1 つの興味深い点として、unicorn_rails -E フラグはレール環境を参照する必要がありますが、unicorn -E はラック環境を参照する必要があります。ラック環境は開発と展開の値のみを取得する必要がありますが、本番環境に設定されます。奇妙な ( RACK_ENV 変数の設定については、ユニコーンのドキュメントを参照してください。
これについての洞察は大歓迎です。私のステージング サーバーでは、RAILS_ENV もステージングに設定しました。環境フォルダーに staging.rb を追加したり、database.yml にステージング セクションを追加したりするなど、別の環境用に Rails をセットアップしました。
unicorn_rack_env に関する lib/capistrano-unicorn/config.rb の重要な行:
_cset(:unicorn_env) { fetch(:rails_env, 'production' ) }
_cset(:unicorn_rack_env) do
# Following recommendations from http://unicorn.bogomips.org/unicorn_1.html
fetch(:rails_env) == 'development' ? 'development' : 'deployment'
end
前もって感謝します。