Nextcloud through Docker

db.env

POSTGRES_PASSWORD=ncpassword
POSTGRES_DB=nextcloud
POSTGRES_USER=nextcloud
PGDATA=/var/lib/postgresql/data/pgdata

docker-compose.yml

# Run the following with: docker-compose up -d

version: '3'

services:
  db:
    image: postgres:alpine
    restart: always
    volumes:
      - db:/var/lib/postgresql/data
    env_file:
      - db.env

  redis:
    image: redis:alpine
    restart: always

  app:
    image: nextcloud:apache
    restart: always
    ports:
      - 8080:80
    volumes:
      - nextcloud:/var/www/html
    environment:
      - POSTGRES_HOST=db
      - REDIS_HOST=redis
    env_file:
      - db.env
    depends_on:
      - db
      - redis

  cron:
    image: nextcloud:apache
    restart: always
    volumes:
      - nextcloud:/var/www/html
    entrypoint: /cron.sh
    depends_on:
      - db
      - redis

volumes:
  db:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /media/pi/2916750d-5d0b-41a3-95e7-c36685e6437d/ncdata/docker_db
  nextcloud:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /media/pi/2916750d-5d0b-41a3-95e7-c36685e6437d/ncdata/docker_nextcloud

Check initialization logs using:

docker logs -f docker_app_1