services:

{% include 'templates/docker/services/redis.yml.j2' %}

{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}

  application:
    image: "nextcloud:{{applications.nextcloud.version}}-fpm-alpine"
    container_name: {{applications.nextcloud.container.application}}
    volumes:
      - data:{{nextcloud_docker_work_directory}}
{% if applications[application_id].oidc.flavor == "oidc_login" %}
      - {{nextcloud_host_config_additives_directory}}:{{nextcloud_docker_config_additives_directory}}:ro
{% endif %}
    healthcheck:
      test: ["CMD", "su", "www-data", "-s", "/bin/sh", "-c", "php {{nextcloud_docker_work_directory}}occ status"]
      interval: 1m
      timeout: 10s
      retries: 3
{% include 'roles/docker-compose/templates/services/base.yml.j2' %}
{% include 'templates/docker/container/depends-on-database-redis.yml.j2' %}
{% include 'templates/docker/container/networks.yml.j2' %}
        ipv4_address: 192.168.102.69

  web:
    image: nginx:alpine
    container_name: {{applications.nextcloud.container.proxy}}
    logging:
      driver: journald
    restart: {{docker_restart_policy}}
    ports:
      - "127.0.0.1:{{ports.localhost.http[application_id]}}:80"
    volumes:
        - "{{docker_compose.directories.volumes}}nginx.conf:/etc/nginx/nginx.conf:ro"
    volumes_from:
      - application
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:80/"]
      interval: 1m
      timeout: 10s
      retries: 3
    networks:
      default:
        ipv4_address: 192.168.102.67

  cron:
    container_name: nextcloud-cron
    image: "nextcloud:{{applications.nextcloud.version}}-fpm-alpine"
    restart: {{docker_restart_policy}}
    logging:
      driver: journald
    volumes:
      - data:{{nextcloud_docker_work_directory}}
    entrypoint: /cron.sh
    healthcheck:
      test: ["CMD", "su", "www-data", "-s", "/bin/sh", "-c", "php {{nextcloud_docker_work_directory}}occ status"]
      interval: 1m
      timeout: 10s
      retries: 3
{% include 'templates/docker/container/depends-on-database-redis.yml.j2' %}
{% include 'templates/docker/container/networks.yml.j2' %}
        ipv4_address: 192.168.102.70

{% include 'templates/docker/compose/volumes.yml.j2' %}
  data:
  redis:

{% include 'templates/docker/compose/networks.yml.j2' %}