services: db: image: postgres:13.1 container_name: nextcloud-db restart: always volumes: - db:/var/lib/postgresql/data env_file: - db.env networks: - nextcloud redis: image: redis:alpine container_name: nextcloud-redis restart: always networks: - nextcloud app: image: nextcloud:fpm-alpine container_name: nextcloud-app depends_on: - db - redis restart: always volumes: - nextcloud:/var/www/html - ./app/config:/var/www/html/config - ./app/custom_apps:/var/www/html/custom_apps - ./app/data:/var/www/html/data - ./app/themes:/var/www/html/themes - ./zz-php-fpm-custom.conf:/usr/local/etc/php-fpm.d/zz-php-custom.conf - ./opcache-recommended.ini:/usr/local/etc/php/conf.d/opcache-recommended.ini env_file: - app.env networks: - nextcloud web: image: nginx:alpine container_name: nextcloud-web depends_on: - app restart: always volumes_from: - app volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro env_file: - web.env networks: - nextcloud - reverse-proxy # web: # image: caddy:alpine # container_name: nextcloud-web # restart: always # volumes: # - nextcloud:/var/www/html:z,ro # - ./Caddyfile:/etc/caddy/Caddyfile:ro # depends_on: # - app # networks: # - nextcloud # - reverse-proxy cron: image: nextcloud:fpm-alpine container_name: nextcloud-cron depends_on: - app restart: always entrypoint: /cron.sh volumes_from: - app networks: - nextcloud volumes: nextcloud: db: networks: nextcloud: reverse-proxy: external: true