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

Ъпдейт на 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

Всичко беше наред:

статуса на Nextcloud
  • системата работи
  • няма 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.


📖
Може да ви е интересно още
Как да превърнем историята на Bash в мощна търсачка с fzf

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)
  • няма счупени данни
  • няма паника

И най-важното — следващият път вече знаеш какво правиш.

open source spirit
🛠️
$

Намерихте материала за полезен?

Съдържанието на itpraktika.com е безплатно и ще остане такова.
Ако статията ти е помогнала — можеш да подкрепиш сайта с малка доброволна сума. Всяко дарение помага за поддръжката и развитието на портала.

PayPal Revolut

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *


Колко е 1 + 1 ? (въведете числото)