# vim:ff=unix:ts=2:sw=2:ai:expandtab
---
version: '3.5'
services:
  crond:
    build:
      context: crond/
    volumes:
      - /run/docker.sock:/run/docker.sock

  ldap:
    build:
      cache_from:
        - adarnimrod/slapd
      context: slapd/
    domainname: "${LDAP_HOSTNAME:-ldap}.${LDAP_DOMAIN:-nowhere.com}"
    environment:
      LDAP_ROOTPASS: &password "${LDAP_ROOTPASS:-foo}"
      LDAP_DOMAIN: "${LDAP_DOMAIN:-nowhere.com}"
      LDAP_ORGANIZATION: "${LDAP_ORGANIZATION:-none}"
    hostname: "${LDAP_HOSTNAME:-ldap}"
    image: adarnimrod/slapd
    restart: always
    volumes:
      - _run_slapd:/run/slapd
      - ldap:/var/lib/ldap
      - backup_ldap:/var/backups/ldap

  nss-pam-ldapd:
    build:
      context: nss-pam-ldapd/
    command: /usr/sbin/nslcd --debug --nofork
    depends_on:
      - ldap
    environment:
      LDAP_BASE_DN: &base_dn "${LDAP_BASE_DN:-dc=nowhere,dc=com}"
    volumes:
      - _run_slapd:/run/slapd

  ldap-account-manager:
    build:
      cache_from:
        - adarnimrod/ldap-account-manager
      context: ldap-account-manager/
    depends_on:
      - ldap
    environment:
      LAM_PASSWORD: *password
      LDAP_ADMIN_DN: "cn=admin,${LDAP_BASE_DN:-dc=nowhere,dc=com}"
      LDAP_BASE_DN: *base_dn
    image: adarnimrod/ldap-account-manager
    ports:
      - 80:8080
    restart: always
    volumes:
      - _run_slapd:/run/slapd

volumes:
  _run_slapd:
  ldap:
  backup_ldap:
    labels:
      snapshot: 'true'

networks:
  default:
    name: shore
