Обходной путь для страницы технического обслуживания — можно ли это сделать?

Будьте осторожны и не думайте, что веб-интерфейс для обновлений всегда будет работать. Обновление через веб-страницу не всегда возможно. Некоторые обновления (например, очень свежее обновление версии базы данных) потребуют пересборки из командной строки. Это означает, что вам нужно будет получить доступ к серверу через SSH и использовать командную строку для пересборки.

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

Так что я прошёл весь процесс, с помощью бота Discourse, который сделал его немного проще для меня, потому что, похоже, оригинальная тема «Переход с отдельного контейнера на отдельные веб- и данные-контейнеры» была написана 10 лет назад, и я не хотел всё испортить.

После нескольких вопросов и большого количества сделанных заметок, я, думаю, немного лучше понимаю, что к чему. Моя установка работает, так что, я полагаю, всё было настроено правильно…?

Бот сказал мне, что когда мне нужно обновить что-то, что действительно требует от меня SSH, порядок должен быть таким:

# это займёт около 20 минут (в первый раз); обычно 5–15 мин после этого
# (НЕ точное время первого bootstrap — docker кэширует слои при последующих пересборках)
sudo ./launcher bootstrap web_only

# после успешного bootstrap, выполните:
sudo ./launcher destroy web_only && sudo ./launcher start web_only

# периодически проверяйте место на диске:
df -h

# и если место на диске заканчивается из-за старых неиспользуемых образов:
sudo ./launcher cleanup

и я готов к работе.

Обновление «раз в год» немного сложнее, но я тоже сделал заметки по этому поводу, мне просто нужно их организовать, так как я не буду ими пользоваться прямо сейчас.

Верен ли этот рабочий процесс выше?

И спасибо всем за обмен обратными связями!

Можно ли попросить «глупое правило» учесть это и знать, когда использовать каждый из доступных вариантов обновления?

Я не эксперт, другие разбираются в этих вопросах гораздо лучше, но… по моему опыту никогда не стоит полагаться на то, что обновление через веб-интерфейс пройдет успешно, всегда будьте готовы пересоздать систему из командной строки. Недавнее обновление PostgreSQL с версии 15 до 18, описанное здесь, было очевидным случаем, когда вы понимаете, что не обойдетесь без обновления через веб-интерфейс.

Это не так сложно, рассматривайте обновление через веб-интерфейс как удобство: если оно работает… отлично, но будьте готовы к тому, что не сработает. По крайней мере, когда оно не работает, вы получаете информативное объяснение того, что произошло и что делать, чтобы это исправить. Многие профессиональные администраторы Discourse здесь посоветовали бы вам даже не пытаться. Мой форум небольшой и с низкой нагрузкой, я могу позволить себе рискнуть, но у вас может не быть такой роскоши.

в последнее время я не так часто пишу здесь, но если вам нужна помощь с настройкой dual container или есть вопросы — пишите в личку. я веду два отдельных форума на dual container за cloudflare cdn с s3-совместимым объектным хранилищем r2. да, это немного сложнее, чем single container, но не так сложно, как многие думают. за этим очень легко ухаживать, а с помощью bash-скрипта обновления становятся ещё проще.