Use the following to set up Nextcloud in a Docker Container:
version: '3.9' services: mariadb: image: mariadb:latest container_name: Nextcloud-DB security_opt: - no-new-privileges:true command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-read-only-compressed=OFF environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=[PASSWORD] - MYSQL_PASSWORD=[PASSWORD] - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - TZ=America/Los_Angeles volumes: - /volume1/docker/nextcloud/mariadb:/config restart: on-failure:5 redis: image: redis:latest container_name: Nextcloud-REDIS hostname: nextcloudredis healthcheck: test: ["CMD-SHELL", "redis-cli ping || exit 1"] environment: - PUID=1000 - PGID=1000 - TZ=America/Los_Angeles volumes: - /volume1/docker/nextcloud/redis:/data:rw restart: on-failure:5 nextcloud: image: nextcloud:latest container_name: Nextcloud ports: - 9333:80 depends_on: mariadb: condition: service_started redis: condition: service_healthy healthcheck: test: curl -f http://localhost:80/ || exit 1 environment: - REDIS_HOST=nextcloudredis - NEXTCLOUD_TRUSTED_DOMAINS=[DOMAIN] 10.0.1.9 - TRUSTED_PROXIES=[DOMAIN] 10.0.1.9 - OVERWRITEHOST=[DOMAIN] - OVERWRITEPROTOCOL=https - MYSQL_PASSWORD=[PASSWORD] - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=mariadb volumes: - /volume1/docker/nextcloud/html:/var/www/html:rw - /volume1/docker/nextcloud/custom_apps:/var/www/html/custom_apps:rw - /volume1/docker/nextcloud/config:/var/www/html/config:rw - /volume1/docker/nextcloud/data:/var/www/html/data:rw - /volume1/docker/nextcloud/themes:/var/www/html/themes:rw restart: on-failure:5 cron: image: nextcloud:apache container_name: Nextcloud-CRON restart: always volumes: - /volume1/docker/nextcloud/config:/var/www/html/config:rw - /volume1/docker/nextcloud/html:/var/www/html:rw - /volume1/docker/nextcloud/custom_apps:/var/www/html/custom_apps:rw - /volume1/docker/nextcloud/data:/var/www/html/data:rw entrypoint: /cron.sh depends_on: mariadb: condition: service_started redis: condition: service_started proxy: image: 'jc21/nginx-proxy-manager:latest' container_name: Nextcloud-PROXY restart: unless-stopped ports: - '80:80' - '81:81' - '443:443' volumes: - /volume1/docker/nextcloud/proxy/data:/data - /volume1/docker/nextcloud/proxy/letsencrypt:/etc/letsencrypt
Source
https://github.com/docker/awesome-compose/tree/master/nextcloud-redis-mariadb