Есть Rails приложение и Dokku (Docker).
Начали возникать ситуации, когда судя по всему не хватает оперативной памяти на сервере. Вместе с контейнером Rails приложения стартуют еще PostgreSQL и Redis.
Я понимаю что нужно решать проблему с ОЗУ, но также я хотел бы решить еще одну проблему – автоматический перезапуск упавшего приложения (или правильнее контейнеров?)
Первый раз, когда упало приложение, в логах на последней строке я обнаружил слово Killed
. На моей практике это всегда было из-за нехватки ОЗУ.
Сегодня в логе на последней строке я вижу Completed 200 OK
от ActiveRecord
. До этой строки тоже не было внятных ошибок. То есть шли запросы от пользователей. И с тех пор приложение “лежало”.
Читая документацию Dokku и Docker, наткнулся на Restart policies. А если конкретно, то на on-failure
. У Dokku это 10 изначально.
Но я честно скажу, что я не совсем понял, как оно работает, ибо желаемого перезапуска не происходит.
Не могли бы вы, пожалуйста, дать советы по этой теме, ибо она для меня совсем нова?