Just did the Nextcloud Docker update version 19.0 to 20.0. I followed their guide on Github and updated my docker-compose file.
nextcloud-app: image: nextcloud:20.0 restart: unless-stopped volumes: - /opt/containers/nextcloud/app:/var/www/html depends_on: - nextcloud-db - nextcloud-redis environment: REDIS_HOST: nextcloud-redis REDIS_HOST_PASSWORD: XXXXXXX networks: proxy: ipv4_address: 172.1X.X.X
Followed by:
$ docker-compose -f /opt/containers/nextcloud/docker-compose.yml pull $ docker-compose -f /opt/containers/nextcloud/docker-compose.yml up -d
After 10 minutes my Nextcloud was still in maintenance mode, so I checked the logs.
$ docker logs nextcloud-app_1 Initializing nextcloud 20.0.1.1 ... Upgrading nextcloud from 19.0.1.1 ... Initializing finished Nextcloud or one of the apps require upgrade - only a limited number of commands are available You may use your browser or the occ upgrade command to do the upgrade Setting log level to debug Turned on maintenance mode Updating database schema Updated database Disabled incompatible app: announcementcenter Disabled incompatible app: breezedark Disabled incompatible app: calendar Disabled incompatible app: drawio ... ... ... Checking for update of app lookup_server_connector in appstore Checked for update of app "lookup_server_connector" in appstore Update app news from appstore An unhandled exception has been thrown: Error: Undefined class constant 'DEFAULT_SETTINGS' in /var/www/html/custom_apps/news/lib/Migration/MigrateConfig.php:49 Stack trace: #0 [internal function]: OCA\News\Migration\MigrateConfig->__construct(Object(OCA\News\Config\LegacyConfig), Object(OC\AllConfig), Object(OCA\News\AppInfo\Application)) #1 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(101): ReflectionClass->newInstanceArgs(Array) #2 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(109): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass)) #3 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(126): OC\AppFramework\Utility\SimpleContainer->resolve('OCA\\News\\Migrat...') #4 /var/www/html/lib/private/AppFramework/DependencyInjection/DIContainer.php(455): OC\AppFramework\Utility\SimpleContainer->query('OCA\\News\\Migrat...') #5 /var/www/html/lib/private/ServerContainer.php(140): OC\AppFramework\DependencyInjection\DIContainer->queryNoFallback('OCA\\News\\Migrat...') #6 /var/www/html/lib/private/Repair.php(119): OC\ServerContainer->query('OCA\\News\\Migrat...') #7 /var/www/html/lib/private/legacy/OC_App.php(1035): OC\Repair->addStep('OCA\\News\\Migrat...') #8 /var/www/html/lib/private/legacy/OC_App.php(979): OC_App::executeRepairSteps('news', Array) #9 /var/www/html/lib/private/Installer.php(206): OC_App::updateApp('news') #10 /var/www/html/lib/private/Updater.php(452): OC\Installer->updateAppstoreApp('news') #11 /var/www/html/lib/private/Updater.php(260): OC\Updater->upgradeAppStoreApps(Array) #12 /var/www/html/lib/private/Updater.php(130): OC\Updater->doUpgrade('20.0.1.1', '19.0.1.1') #13 /var/www/html/core/Command/Upgrade.php(255): OC\Updater->upgrade() #14 /var/www/html/3rdparty/symfony/console/Command/Command.php(255): OC\Core\Command\Upgrade->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #15 /var/www/html/3rdparty/symfony/console/Application.php(1000): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #16 /var/www/html/3rdparty/symfony/console/Application.php(271): Symfony\Component\Console\Application->doRunCommand(Object(OC\Core\Command\Upgrade), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #17 /var/www/html/3rdparty/symfony/console/Application.php(147): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #18 /var/www/html/lib/private/Console/Application.php(215): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #19 /var/www/html/console.php(100): OC\Console\Application->run() #20 /var/www/html/occ(11): require_once('/var/www/html/c...') #21 {main} 0/0 [->--------------------------] 0%Configuring Redis as session handler AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.1X.X.XX. Set the 'ServerName' directive globally to suppress this message AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.1X.X.XX. Set the 'ServerName' directive globally to suppress this message
Seems like the news app updating process threw an exception. After searching for a minute I found this thread, where someone got the same error and just manually disabled the maintenace mode. So I did the same:
$ docker exec --user www-data nextcloud-app_1 php /var/www/html/occ maintenance:mode --off Nextcloud or one of the apps require upgrade - only a limited number of commands are available You may use your browser or the occ upgrade command to do the upgrade Maintenance mode disabled
Went back to the WebGui, logged in and he asked me to update the news app. Now the update finished without problems.