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: - db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=nextcloud env_file: - db.env container_name: nextcloud-db redis: image: redis:alpine container_name: nextcloud-redis networks: - backend-nextcloud restart: always app: image: nextcloud:fpm-alpine restart: always volumes: - nextcloud:/var/www/html environment: - MYSQL_HOST=db - REDIS_HOST=redis env_file: - db.env networks: - backend-nextcloud depends_on: - db - redis container_name: nextcloud web: build: ./web restart: always ports: - 8080:80 volumes: - nextcloud:/var/www/html:ro depends_on: - app networks: - webproxy - backend-nextcloud container_name: nextcloud-nginx cron: image: nextcloud:fpm-alpine restart: always volumes: - nextcloud:/var/www/html entrypoint: /cron.sh depends_on: - db - redis container_name: nextcloud-cron volumes: db: /opt/appdata/nextcloud/mysql nextcloud: /opt/appdata/nextcloud