47 lines
1.8 KiB
Plaintext
47 lines
1.8 KiB
Plaintext
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 --no-install-recommends \
|
|
slapd ldap-utils gnutls-bin ssl-cert ca-certificates schema2ldif 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
|
|
|
|
# create a script to automatically start slapd while this dockerfile is being parsed
|
|
COPY ./start-slapd.sh ./start-slapd.sh
|
|
RUN chmod +x ./start-slapd.sh
|
|
|
|
# open up LDAP simple port
|
|
EXPOSE 636
|
|
|
|
# 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
|
|
|
|
# ENTRYPOINT ensures this sh file ALWAYS runs first before any CMD or command line instruction
|
|
ENTRYPOINT ["./entrypoint.sh"]
|
|
|
|
# CMD provides the default command (/bin/bash) which is passed as an argument to the ENTRYPOINT script
|
|
CMD ["/bin/bash"]
|
|
|
|
### 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 |