{% include 'roles/docker-compose/templates/base.yml.j2' %}

  application:
    image: "{{ openldap_image }}:{{ openldap_version }}"
    container_name: "{{ openldap_name }}"
{% include 'roles/docker-container/templates/base.yml.j2' %}
{% if openldap_network_expose_local %}
    ports:
      - 127.0.0.1:{{ports.localhost.ldap['svc-db-openldap']}}:{{openldap_docker_port_open}}
{% endif %}
    volumes:
      - 'data:/bitnami/openldap'
      - '{{openldap_ldif_host_path}}:{{openldap_ldif_docker_path}}:ro'
    healthcheck:
      test: >
        bash -c '
        ldapsearch -x -H ldap://localhost:{{ openldap_docker_port_open }} \
          -D "{{ ldap.dn.administrator.data }}" -w "{{ ldap.bind_credential }}" -b "{{ ldap.dn.root }}" > /dev/null \
        && ldapsearch -Y EXTERNAL -H ldapi:/// \
          -b cn=config "(&(objectClass=olcOverlayConfig)(olcOverlay=memberof))" \
        | grep "olcOverlay:" | grep -q "memberof"
        '
{% include 'roles/docker-container/templates/networks.yml.j2' %}

{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
  data:
    name: "{{ openldap_volume }}"

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