version: '3' services: db: image: postgres restart: always volumes: - db:/var/lib/postgresql/data env_file: - db.env app: image: nextcloud:fpm restart: always volumes: - nextcloud-data:/var/www/html/data - nextcloud-config:/var/www/html/config - nextcloud-apps:/var/www/html/custom_apps - nextcloud-theme:/var/www/themes/mytheme # full html dir must be last in mount order - nextcloud:/var/www/html environment: - POSTGRES_HOST=db env_file: - db.env depends_on: - db web: build: ./web restart: always ports: - 8080:80 volumes: # volumes must copy-past volume section from app with readonly - nextcloud-data:/var/www/html/data:ro - nextcloud-config:/var/www/html/config:ro - nextcloud-apps:/var/www/html/custom_apps:ro - nextcloud-theme:/var/www/themes/mytheme:ro # full html dir must be last in mount order - nextcloud:/var/www/html:ro depends_on: - app volumes: db: nextcloud: nextcloud-data: nextcloud-config: nextcloud-apps: nextcloud-theme: