Ъпдейт на Nextcloud в Docker (без изненади и счупени инстанции)

Наложи ми се да направя Nextcloud ъпдейт в Docker , който работи в Docker среда, и реших да го споделя. Не защото е сложно, а защото е лесно да го направиш „на бързо“… и после да си създадеш проблеми.
Ще мина през целия процес — от проверката на контейнерите до финалното изчистване на maintenance mode.
1. Проверка на контейнерите
Започнах от най-елементарното — да видя как се казват контейнерите:
docker ps
При мен резултатът беше:
nextcloud-app-1
nextcloud-db-1
Тук е първият важен момент:
ако не си задал container_name, Docker Compose си генерира имена. В моя случай контейнерът не беше nextcloud-app, а nextcloud-app-1.
2. Проверка на текущото състояние
След това проверих статуса на Nextcloud:
docker exec -it nextcloud-app-1 php occ status
Всичко беше наред:

- системата работи
- няма pending upgrade
- няма maintenance mode
3. Ъпдейт на контейнера
Тук няма нищо екзотично:
docker compose pull && docker compose up -d
Това:
- тегли новия image
- рестартира контейнера
Аз съм с:
image: nextcloud:32-apache
👉 това означава, че съм заключен към версия 32, но получавам всички patch update-и (32.x).
4. Какво се случи след ъпдейта
След рестарта проверих пак:
docker exec -it nextcloud-app-1 php occ status
И получих:
maintenance: true
needsDbUpgrade: true
Това е напълно нормално.
Nextcloud беше влязъл в maintenance mode и чакаше да се изпълни database upgrade.
📖
5. Изпълнение на upgrade-а
Решението:
docker compose pull
docker compose up -d
Процесът:
- обнови database schema
- направи integrity check
- приключи успешно
Но… има една уловка.
6. Maintenance mode остана включен
След upgrade-а проверих пак:
docker exec -it nextcloud-app-1 php occ status
И видях:
maintenance: true
needsDbUpgrade: false
👉 Това означава:
- upgrade-ът е минал успешно
- но системата е останала заключена
7. Финалната стъпка
Изключих maintenance mode ръчно:
docker exec -it nextcloud-app-1 php occ maintenance:mode --off
След това:
docker exec -it nextcloud-app-1 php occ status
Всичко вече беше наред:
maintenance: false
needsDbUpgrade: false
8. Какво научих от това
Няколко важни извода:
1. Имената на контейнерите имат значение
Не гадай — винаги проверявай с docker ps.
2. Ъпдейтът не свършва с docker compose up
Nextcloud почти винаги иска:
php occ upgrade
3. Maintenance mode не винаги се изключва сам
Понякога трябва ръчно:
php occ maintenance:mode --off
4. nextcloud:32-apache е добър избор
- получавам security updates
- не скачам към нова major версия без контрол
9. Моят финален workflow
След този опит, процесът ми вече е:
docker compose pull
docker compose up -d
docker exec -it nextcloud-app-1 php occ upgrade
docker exec -it nextcloud-app-1 php occ maintenance:mode --off
Просто, ясно и без изненади.
Заключение
Ъпдейтът на Nextcloud в Docker не е сложен, но има няколко тънкости, които ако пропуснеш, ще се чудиш защо сайтът ти е „паднал“, а всъщност просто е в maintenance mode.
Ако го направиш правилно:
- няма downtime (освен кратък maintenance)
- няма счупени данни
- няма паника
И най-важното — следващият път вече знаеш какво правиш.
Намерихте материала за полезен?
Съдържанието на itpraktika.com е безплатно и ще остане такова.
Ако статията ти е помогнала — можеш да подкрепиш сайта с малка доброволна сума.
Всяко дарение помага за поддръжката и развитието на портала.
