Развертывание рельсов Capistrano завершилось неудачно при обновлении до рельсов 5.1.5, но по-прежнему установлено текущее значение при неудачном развертывании - PullRequest
0 голосов
/ 12 ноября 2018

Я решил обновить приложение rails с 5.0.1 до 5.1.5. Это включало обновление с Zurb Foundation с 6.2.3 до 6.4.x, чтобы я мог начать покрывать grix-xy.

У меня есть два приложения Rails, которые развернуты на коробках Debian. Одним из них является локальное окно, являющееся пользовательским приложением для управления почтой VFW (Veterans of Foreign Wars). Я сделал примерно то же самое обновление для этой коробки несколько месяцев назад, и у меня были только незначительные проблемы. Отсутствие yarn и node.js, казалось, было одной из проблем, но это может длиться месяцами. Другой развернут на виртуальном сервере Digital Oceans. Это я застрял.

Мой процесс был

  • добавлена ​​и проверена ветка rails5.1
  • изменить гемфайл на новые рельсы и фундаментные рельсы
  • используемое приложение rails: обновление для обновления системных компонентов
  • установил новые установки
  • очищены представления для использования более новой версии Foundation
  • проверено, что я мог в разработке
  • слил ветку rails5.1 в master и внес изменения в мой репозиторий
  • попытался развернуть с помощью Capistrano - застрял

Я беспокоился о СЕКРЕТАХ, но мой метод работал с приложением VFW (используя rbenv-vars для установки секретов). Я развернул серийное производство, которое началось с проблем.

Я получил ошибку пряжи

 DEBUG [27ff41fe] Command: cd /home/deploy/apps/pt_golfer/releases/20181111214738 && ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.3.1" RAILS_ENV="production" RAILS_GROUPS="" ; RBENV_ROOT=$HOME/.rbenv RBENV_VERSION=2.3.1 $HOME/.rbenv/bin/rbenv exec bundle exec rake assets:precompile )
 DEBUG [fee53ebb]   Yarn executable was not detected in the system.
 DEBUG [fee53ebb]   
 DEBUG [fee53ebb]   Download Yarn at https://yarnpkg.com/en/docs/install
 DEBUG [fee53ebb]   
 DEBUG [fee53ebb]   I, [2018-11-11T16:37:28.513883 #11920]  INFO -- : Writing /home/deploy/apps/pt_golfer/releases/20181111214738/public/assets/application-683e0728d4efb1932c42933c1d3e66430959c9f4575bf91d83518c647597847f.js
 DEBUG [fee53ebb]   I, [2018-11-11T16:37:28.514512 #11920]  INFO -- : Writing /home/deploy/apps/pt_golfer/releases/20181111214738/public/assets/application-683e0728d4efb1932c42933c1d3e66430959c9f4575bf91d83518c647597847f.js.gz
 DEBUG [fee53ebb]   I, [2018-11-11T16:37:28.516684 #11920]  INFO -- : Writing /home/deploy/apps/pt_golfer/releases/20181111214738/public/assets/application.js-d85e0f2634e381cd64bda8c1bc5a6097e295cbdbbd7ef0880e0016d19cfa6e35.copy
 DEBUG [fee53ebb]   I, [2018-11-11T16:37:28.519517 #11920]  INFO -- : Writing /home/deploy/apps/pt_golfer/releases/20181111214738/public/assets/_settings.scss-b317c61809f397c15bef60771da1f85f01f265fa195aabb8dc44da529c36319c.copy
 DEBUG [fee53ebb]   rake aborted!
Autoprefixer doesn’t support Node v0.10.29. Update it.

Но развертывание продолжилось, и я уверен, что он установил «текущую» ссылку на неудачное развертывание. Затем я установил пряжу на виртуальном сервере DO и попытался развернуть снова.

На этот раз, похоже, завершение развертывания, но в единороге произошел сбой: перезапустить задачу

 INFO [3dfc7929] Running RBENV_ROOT=$HOME/.rbenv RBENV_VERSION=2.3.1 $HOME/.rbenv/bin/rbenv exec bundle exec unicorn -c /home/deploy/apps/pt_golfer/current/config/unicorn.rb -E production -D as deploy@my.do.ip.238
DEBUG [3dfc7929] Command: cd /home/deploy/apps/pt_golfer/current && ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.3.1" ; RBENV_ROOT=$HOME/.rbenv RBENV_VERSION=2.3.1 $HOME/.rbenv/bin/rbenv exec bundle exec unicorn -c /home/deploy/apps/pt_golfer/current/config/unicorn.rb -E production -D )
DEBUG [355f81af]  master failed to start, check stderr log for details

на моем терминале я увидел следующую ошибку

(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as deploy@@my.do.ip.238: cat /home/deploy/apps/pt_golfer/shared/tmp/pids/unicorn.pid.oldbin exit status: 1
cat /home/deploy/apps/pt_golfer/shared/tmp/pids/unicorn.pid.oldbin stdout: Nothing written
cat /home/deploy/apps/pt_golfer/shared/tmp/pids/unicorn.pid.oldbin stderr: cat: /home/deploy/apps/pt_golfer/shared/tmp/pids/unicorn.pid.oldbin: No such file or directory

В этот момент единорог все еще использовал старую версию. Я пошел по пути к большему количеству неудач.

Я пробовал шапку производства единорога: жесткий перезапуск. Это убило старую версию, но не запустило новый сервер

Подумав, что я потерпел неудачу в чем-то, чего я не понял, я сделал откат производства шапки. Ошибка: файл манифеста ресурсов Rails (или файл резервной копии) не найден

Глядя на мою структуру развертывания, «текущий» указывал на последний неудачный выпуск развертывания (их было два). Затем я перепрыгнул акулу и связал ток с последней хорошей версией (rails 5.0.x) и запустил единорога. Это придумал старый рубин, но новый CSS! Это работоспособно, к счастью, я не сделал так много изменений css, моя верхняя панель облажалась со сменой основы css, но работоспособна.

Мой вопрос: куда мне идти отсюда? Я могу попытаться восстановить свой промежуточный сервер, но это может занять несколько дней. Полагаю, я также мог бы попытаться как-нибудь поставить постановку на виртуальный хост DO.

Если бы я был экспертом по git, я уверен, что это способ вернуться к моему последнему хорошему коммиту, но все равно сохраняйте ветку rails5.1, пока я не смогу выяснить, что пошло не так.

Мой следующий путь, так как я знаю, что могу вызвать старую версию, это попытаться выяснить, что является ошибкой ошибки единорога. Угадайте, что выполнение единорога в комплекте должно убрать Капистрано из картины.

1 Ответ

0 голосов
/ 13 ноября 2018

В ошибках Capistrano не было понятно, где найти ошибку.

Поскольку я не получил никаких предложений о том, где искать, я переключился на новую версию в текущей версии и попытался запустить ее с service unicorn start и получил ошибку, за которой я мог следовать.

Nov 13 04:19:36 stevealex systemd[1]: Starting LSB: starts the unicorn app server...
Nov 13 04:19:41 stevealex unicorn_ptgolf[28314]: master failed to start, check stderr log for details
Nov 13 04:19:41 stevealex systemd[1]: unicorn_ptgolf.service: control process exited, code=exited status=1
Nov 13 04:19:41 stevealex systemd[1]: Failed to start LSB: starts the unicorn app server.
Nov 13 04:19:41 stevealex systemd[1]: Unit unicorn_ptgolf.service entered failed state.

Это в конечном итоге указало мне на unicorn.stderr.log (если у вас не было проблем с развертыванием в течение нескольких лет, вы вроде бы забыли кое-что!). Там я нашел:

NoMethodError: undefined method `skip_before_filter' for SaController:Class
Did you mean?  skip_before_action

Тогда я вспомнил, что это был один из предметов при обновлении с 5.0 до 5.1 для проверки.

Исправлено, и я выключен и работаю.

Полагаю, ответ на мой непонятный вопрос таков: «Проверьте все системные журналы, и в конечном итоге вы обнаружите ошибку, которая что-то значит»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...