Привет! У меня запущен Discourse CE в Docker. У меня есть права root, и я делаю резервную копию контейнера с помощью команд docker id stop и docker image save -o <id> file.tar. После этого я успешно обновил Discourse. Теперь я протестировал восстановление с помощью команд docker image load -i file.tar и docker start id, но версия осталась обновлённой, а не старой, как я ожидал.
Я ожидал, что это не сработает, поскольку база данных (которая находится в постоянном хранилище) была мигрирована дальше, чем поддерживает старый образ.
Как вы выполняли обновление? Через командную строку с пересборкой или через интерфейс Discourse?
Идея была проста: делать резервную копию всего контейнера Docker ночью. Также, как в данном случае, перед обновлением с beta4 до beta5 и в случае ошибки — откатиться к старому контейнеру.
Спасибо.
Возможно, стоит создать тестовый сайт (staging), чтобы протестировать обновление перед его запуском. Также можно загрузить контейнер с тестового сайта в репозиторий, а затем запустить его на продакшн-среде.