More than two app directories?

Hi,
I moved my NC27 into docker; now, I want to upgrade to 28, which fails because the log says, it can’t remove “own_apps”.

I tried to use 3 App directories:

/apps –> for standard-apps
/custom_apps –> for additional apps
/own_apps –> for apps I coded myself (not in the store, just the git-repo of my app)

My config-snippet:

  'apps_paths' => 
  array (
    0 => 
    array (
      'path' => '/var/www/html/apps',
      'url' => '/apps',
      'writable' => false,
    ),
    1 => 
    array (
      'path' => '/var/www/html/custom_apps',
      'url' => '/custom_apps',
      'writable' => true,
    ),
    2 => 
    array (
      'path' => '/var/www/html/own_apps',
      'url' => '/own_apps',
      'writable' => false,
    ),
  ),

My docker-config:

    volumes:
      - /srv/docker/data/nextcloud:/var/www/html
      - /srv/docker/data/nextcloud-files:/var/www/data
      - /srv/docker/data/nextcloud-apps:/var/www/html/custom_apps
      - /srv/docker/data/nextcloud-own-apps:/var/www/html/own_apps
      - /srv/docker/log/nextcloud:/var/www/log
      - /srv/docker/config/nextcloud/config.php:/var/www/html/config/config.php

Is there’s anything wrong about the config or is this not the intended way to do it? Or should own_apps not reside inside the html-dir, because the updater won’t know about this dir?

It sounds like a permission issue. Do you run the container under a specific user? The best I can think of, is to log into the container and look at the folder permission of own_apps. Just run the command ls -LAN /var/www/html in the container and compare the owner of apps with own_apps.
Furthermore, it could be possible, that the owner also differs on the docker host, so compare that too.

Everything is www-data:www-data… But of course: own_apps is an overlay which can’t be removed inside the container; but the upgrade-script seems to try to remove it, rsync fails with an error and the upgrade stucks.

Of course, I can finish the upgrade removing the overlay manually and restore it afterwards, but that’s not the intended way of doing upgrades.

I cannot see any hint, why you get an error. I guess that this is a bug. See here for reference:
https://docs.nextcloud.com/server/latest/admin_manual/apps_management.html#using-custom-app-directories

Just a moment… You write, that you use Docker and that you want to update from 27 to 28. How do you do this? I expect with docker compose pull or do you try to use the updater in the GUI?

Docker-Compose-Way: replace the version in the image tag and docker-compose stop cloud && docker-compose up -d cloud.

I figured out, if I put the third apps-dir outside of /var/www/html it seems to work (at least for 28 → 29), so I replaced to:

    2 => 
    array (
      'path' => '/var/www/own_apps',
      'url' => '/own_apps',
      'writable' => false,
    ),

in the config and

      - /srv/docker/data/nextcloud-apps:/var/www/html/custom_apps
      - /srv/docker/data/nextcloud-own-apps:/var/www/own_apps

at docker-compose and the update works as expected – but to make the apps work, I have to create the symlink…