Предотвращение простоев из-за сбоя при развертывании при использовании развертываний Passenger, bundler и git - PullRequest
2 голосов
/ 16 апреля 2011

Я развертываю приложение Rails 3 на Passenger 3.0.7 с использованием развертывания на основе capistrano и git, аналогично настройке GitHub: https://github.com/blog/470-deployment-script-spring-cleaning - это означает, что приложение работает полностью из одного каталога, без/ release / 123456 и переключение символических ссылок.

Если мы добавили какие-либо драгоценные камни, наше приложение начнет выдавать 500 ошибок во время развертывания, на этапе «комплектация: установка», но перед развертыванием: перезапустить ,Код был обновлен, и кажется, что пассажир уже начинает использовать его, и требуемые драгоценные камни еще не могут быть найдены.

Это не вызвано тем, что новые рабочие были ускорены, поскольку я попытался установитьПассажир idle_time равен 0, а max_instances и min_instances равны одному значению, так что рабочие никогда не останавливаются.

Работает в Linux с ruby-ee 1.8.7-2011.03.Пример ошибки от Пассажира: https://gist.github.com/54794e85d2c799e4f697

Я также подумал о том, чтобы выполнить развертывание на основе git с двумя каталогами как хак - подмену нового кода после завершения комплектации.Идеи приветствуются.

1 Ответ

0 голосов
/ 18 мая 2011

Перейти с развертыванием двух каталогов. Помимо обхода 500-х во время развертывания, это также будет действовать в качестве защитной сетки, если вам потребуется откат во время / после развертывания.

...