I am using Nextcloud AIO (running on an Ubuntu VM) and would like to provide access to some external data. So here’s the docker compose file that I use:
version: "3.8" volumes: nextcloud_aio_mastercontainer: name: nextcloud_aio_mastercontainer # This line is not allowed to be changed services: nextcloud: image: nextcloud/all-in-one:latest # Must be changed to 'nextcloud/all-in-one:latest-arm64' when used with an arm64 CPU restart: always container_name: nextcloud-aio-mastercontainer # This line is not allowed to be changed volumes: - nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed - /var/run/docker.sock:/var/run/docker.sock:ro # May be changed on macOS, Windows or docker rootless. See the applicable documentation ports: - 80:80 # Can be removed when running behind a reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md - 8080:8080 - 8443:8443 # Can be removed when running behind a reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md environment: # Is needed when using any of the options below #- SKIP_DOMAIN_VALIDATION=true - TRUSTED_CACERTS_DIR=/srv/certs # CA certificates in this directory will be trusted by the OS of the nexcloud container (Useful e.g. for LDAPS) See See https://github.com/nextcloud/all-in-one#how-to-trust-user-defiend-certification-authorities-ca - APACHE_PORT=11000 # Is needed when running behind a reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md - APACHE_IP_BINDING=0.0.0.0 # Should be set when running behind a reverse proxy that is running on the same host. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md # - TALK_PORT=3478 # This allows to adjust the port that the talk container is using. - NEXTCLOUD_DATADIR=/mnt/ncdata # Allows to set the host directory for Nextcloud's datadir. See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir - NEXTCLOUD_MOUNT=/mnt/external # Allows the Nextcloud container to access the chosen directory on the host. See https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host # - DOCKER_SOCKET_PATH=/var/run/docker.sock # Needs to be specified if the docker socket on the host is not located in the default '/var/run/docker.sock'. Otherwise mastercontainer updates will fail. # - DISABLE_BACKUP_SECTION=true # Setting this to true allows to hide the backup section in the AIO interface. - NEXTCLOUD_UPLOAD_LIMIT=100G # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud - NEXTCLOUD_MAX_TIME=36000 # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud # - COLLABORA_SECCOMP_DISABLED=false # Setting this to true allows to disable Collabora's Seccomp feature. See https://github.com/nextcloud/all-in-one#how-to-disable-collaboras-seccomp-feature
Note that i did change this file after I first started the docker (so this has been the compose file from scratch). Indeed /mnt/ncdata is being used for the Nextcloud data so that works.
I am able to add external storage /mnt/external and write files (I see the files appear in /mnt/external). But when I mount a disk to /mnt/external Nextcloud is not able to read anything.
Yet on the command line:
$ sudo -u www-data ls -ald /mnt/external/media drwxr-x--- 6 www-data root 4096 Oct 18 07:53 /mnt/external/media
(media which is a folder on the mounted disk)
In nextcloud I get this:
I am at a loss here