The Darkest Library

[RU] Апгрейд NextCloud 22->23

Просыпаюсь утром, хочу поботанить математику, а утро встречает в телеге сообщением Андрея Дмитриева (это совладелец JUG Ru Group, мы раньше вместе работали, а теперь делаем подкаст Битовая Каска) о том, что наш NextCloud не работает, и он не может залить свежий выпуск подкаста. Найс утречко началось.

Традиционный постмортем.

Я всё починил, конечно. Похоже, нужно писать гайд о том, как содержать сайт подкаста 🙂 Как минимум чтобы самому его перечитывать, потому что все эти факты улетучиваются из памяти через 10 минут после решения проблемы.

Уточню: при этом сам сайт подкаста работает, ибо файлы раздаются через nginx и от админки никак не зависят. Я не совсем сумасшедший 🙂 ). Проблема только с админкой.

Итак, у меня включен автоматический апгрейд докеров до самой свежей версии (nextcloud:latest, wordpress:latest, итп в Докере). Они там обновляются по Крону раз во сколько-то времени, потому что руками я постоянно забываю это сделать. “Вы не можете обновиться через несколько мажорных версий NextCloud” говорит админка. Докерный образ проапгрейдился, но процедуру завершить не смог.

Первым делом я написал в телегу Паше Финкельштейну (он раньше был моим девелопер адвокатом), который тоже любит NextCloud, но он ничего доброго не подсказал.

Похоже, это какой-то баг – апгрейд идет с 22 версии на 23, это не “через версию”, как утверждает админка. Возможно, проблема в том, что это “23.0.0”, и эта нулевая версия 23-ей ветки еще не успела настояться и избавиться от багов 🙂

Я так и не смог проапгрейдиться. Хорошая новость в том, что NextCloud мы используем, по сути, для менеджмента всего нескольких директорий на диске. Я не обломлюсь создать эти директории заново вручную!

Оказалось, что это отличный момент для переноса всех файлов в отдельную директорию на отдельном виртуальном диске! К сожалению, свежие версии NextCloud не умеют в симлинки, поэтому старую директорию просто так не перенести. Свежую директорию пришлось прописывать в /etc/fstab и биндить хардлинком.

Забавно, что б-гомерзкий кэш в докере не подхватывает эту свежую диреткорию внутри внешнего волюма, поэтому пришлось докер с NextCloud полностью рестартнуть сразу после mount –bind.

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

Решается это так: заходим в интерфейс NextCloud и создаем директории с тем же путём, что уже существует на диске. Интерфейс ругается: “ой, директория уже существует!” и отменяет действие. Но добавляет в индекс и директория появляется в веб-интерфейсе – что и требовалось.

Но файлы в директориях всё равно не видно 🙂 Нужно еще раз залогиниться в контейнер и запустить утилиту для рескана. Вот тогда появляются и файлы.

Справедливости ради, NextCloud с командой из трёх с половиной землекопов, за последнюю пару лет добавил столько фич, сколько OneDrive со всем блядским штатом лучших в мире высокооплачиваемых погромистов Майкрософт – добавили за последние десять.

Вполне возможно, за это стоит немного пострадать пользователям. Само решение не тянуть за собой хвост совместимости в пользу быстрого каденса релизов с новыми фичами – имхо, очень круто. У разрабов NextCloud хватает смелости и твердости так делать, не обращая внимания на бесполезные вопли убитых и раненых 🙂

olegchir

Links: Facebook | Twitter | Instagram

Indie game developer. All opinions are my own.

Add comment

Follow me (@olegchir)

Don't be shy, get in touch. I love meeting interesting people and making new friends.

Most popular

Most discussed