FROM alpine:3.24
ARG BUILD_DATE=$(date +%Y-%m-%dT%H:%M:%SZ)

LABEL org.opencontainers.image.authors="Rich Braun docker@instantlinux.net" \
    org.opencontainers.image.source=https://github.com/instantlinux/docker-tools \
    org.label-schema.build-date=$BUILD_DATE \
    org.label-schema.license=GPL-3.0 \
    org.label-schema.name=openldap \
    org.label-schema.vcs-url=https://github.com/instantlinux/docker-tools

ARG OPENLDAP_VERSION=2.6.14-r0
ENV LDAP_DN_ATTR=uid \
    LDAP_FQDN=example.com \
    LDAP_LOG_LEVEL=Config,Stats \
    LDAP_ORGANIZATION=Example \
    LDAP_OU=ou=users, \
    LDAP_PWD_ATTRIBUTE=userPassword \
    LDAP_PWD_CHECK_QUALITY=2 \
    LDAP_PWD_FAILURE_COUNT_INTERVAL=1200 \
    LDAP_PWD_LOCKOUT_DURATION=1200 \
    LDAP_PWD_MAX_FAILURE=5 \
    LDAP_PWD_MIN_LENGTH=8 \
    LDAP_ROOTDN= \
    LDAP_ROOTPW_HASH= \
    LDAP_ROOTPW_SECRETNAME=openldap-user-passwords \
    LDAP_SUFFIX= \
    LDAP_ULIMIT=2048 \
    LDAP_USERPW_SECRETNAME=kendu

RUN apk add --update --no-cache gettext gzip openldap=$OPENLDAP_VERSION \
      openldap-clients openldap-back-mdb openldap-passwd-pbkdf2 \
      openldap-overlay-auditlog openldap-overlay-memberof \
      openldap-overlay-ppolicy openldap-overlay-refint
VOLUME /etc/openldap/prepopulate /var/lib/openldap/openldap-data \
      /etc/ssl/openldap
EXPOSE 389 636
COPY slapd.conf /root/
COPY schema/custom.* /etc/openldap/schema/
COPY ldif/ /root/ldif/
COPY podman-entrypoint.sh /usr/local/bin/entrypoint.sh

ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
