version: '3' networks: webproxy: external: true backend-nextcloud: external: true services: db: image: mariadb command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW restart: always volumes: - /opt/appdata/nextcloud/mysql:/var/lib/mysql env_file: - db.env container_name: nextcloud-db networks: - backend-nextcloud redis: image: redis:alpine container_name: nextcloud-redis command: redis-server --requirepass ${REDIS_HOST_PASSWORD} networks: - backend-nextcloud restart: always app: image: nextcloud:20.0.9-fpm-alpine restart: always volumes: - /opt/appdata/nextcloud/www:/var/www/html - /mnt/storage-bx20/data-nextcloud:/var/www/html/data environment: - MYSQL_HOST=db - REDIS_HOST=redis env_file: - db.env networks: - backend-nextcloud depends_on: - db - redis container_name: nextcloud web: image: nginx:alpine restart: always volumes: - /opt/appdata/nextcloud/www:/var/www/html:ro - /opt/appdata/nextcloud/nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - app networks: - webproxy - backend-nextcloud container_name: nextcloud-nginx cron: image: nextcloud:20.0.9-fpm-alpine restart: always volumes: - /opt/appdata/nextcloud/www:/var/www/html - /mnt/storage-bx20/data-nextcloud:/var/www/html/data entrypoint: /cron.sh depends_on: - db - redis container_name: nextcloud-cron networks: - backend-nextcloud