Я использовал этот драгоценный камень некоторое время и просто взял погружение, чтобы попытаться развернуть реальную промежуточную среду на моем промежуточном сервере, и у меня возникли проблемы. Единорог начинается с команды unicorn_rails
и -E production
, несмотря на правильность настроек afaik.Capistrano-unicorn gem получить неправильный набор окружения
Я заметил в deploy.rb, что моя переменная unicorn_bin была установлена как unicorn_rails. Я выбрал эту настройку в своем deploy.rb. Однако unicorn: duplicate все еще выполняет команду unicorn_rails
, когда по умолчанию должно быть unicorn
.
У меня все готово к размещению в deploy/staging.rb, как указано в многоступенчатом wiki-документе настройки, но я заметил, что -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/[email protected]/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"
И еще Любопытно, что флаг unicorn_rails -E должен ссылаться на среду рельсов, тогда как unicorn -E должен ссылаться на стойку env - стойка env должна получать только стоимость разработки и развертывания, но он настроен на производство, что немного странно (см. unicorn docs for settings of the RACK_ENV variable.
Любое понимание этого было бы высоко оценено. На моем промежуточном сервере я также установил RAILS_ENV для постановки. Я настроил вещи для рельсов для другой среды, как добавление staging.rb в моей папке сред, добавив раздел Диагностирования database.yml и т.д.
Важных линий в lib/capistrano-unicorn/config.rb говорить о unicorn_rack_env:
_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
Заранее спасибо.