Крупные обновления базы данных происходят реже одного раза в год. Небольшие обновления базы данных занимают немного времени: вы можете пересоздать контейнер с данными, уничтожить и запустить веб-контейнер всего за несколько минут. Похоже, что некоторые предпочитают видеть красивое сообщение о том, что сайт недоступен, вместо сокращения времени простоя, поэтому второй контейнер — это способ решения этой задачи.
На самом деле, возможно, самое простое решение — запустить вручную второй контейнер nginx с сообщением «Скоро вернёмся» во время обновления, например:
./launcher stop app
docker run nginx --name back-soon # и ещё несколько команд, чтобы убедиться, что страница отображается
./launcher bootstrap app
./launcher destroy app
docker stop back-soon
./launcher start app
Однако в этом случае вам потребуется получить сертификат и поддерживать его актуальность для контейнера back-soon, что усложняет процесс.
РЕДАКТИРОВАНИЕ: Вот каноническая тема для этого обсуждения: Add an offline page to display when Discourse is rebuilding or starting up - #83 by amotl