FROM ubuntu:22.04 # set non-interactive TERM for docker ENV DEBIAN_FRONTEND=noninteractive # install slapd and ldap-utils RUN apt-get update && apt-get install -y slapd ldap-utils vim mc && apt-get clean # preconfigure slapd installation without using systemd RUN echo "slapd slapd/password1 password admin" | debconf-set-selections && \ echo "slapd slapd/password2 password admin" | debconf-set-selections && \ echo "slapd slapd/domain string example.com" | debconf-set-selections && \ echo "slapd slapd/no_configuration boolean false" | debconf-set-selections && \ echo "slapd slapd/purge_database boolean true" | debconf-set-selections && \ echo "slapd slapd/move_old_database boolean true" | debconf-set-selections # make use of debconf-set-selections RUN dpkg-reconfigure -f noninteractive slapd # open up LDAP simple port EXPOSE 389 # set salvable volumes for LDAP data, configuration VOLUME ["/var/lib/ldap", "/etc/ldap/slapd.d"] # set correct permissions for openldap user RUN chown -R openldap:openldap /var/lib/ldap /etc/ldap/slapd.d ### optional use ### # start slapd #CMD ["slapd", "-h", "ldap:/// ldapi:///", "-g", "openldap", "-u", "openldap", "-F", "/etc/ldap/slapd.d"] # # set entrypoint #ENTRYPOINT ["/entrypoint.sh"] #CMD ["bash"] # run img container with 'docker run -i -t -v ldap_data:/var/lib/ldap -v ldap_config:/etc/ldap/slapd.d ldapdock' for interactive shell