commit 9dde6c39b48470bb4c4a4b90d7c8c69afdd3f61e Author: luca Date: Wed Dec 14 11:19:32 2022 +0100 Ldap Docker Server diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..19ea029 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +FROM debian:stable-slim + +ARG LDAP_ADMIN_PASSWORD +ARG LDAP_DOMAIN +ARG LDAP_ORGANISATION + +ENV LDAP_ADMIN_PASSWORD $LDAP_ADMIN_PASSWORD +ENV LDAP_ORGANISATION $LDAP_ORGANISATION +ENV LDAP_DOMAIN $LDAP_DOMAIN + +RUN apt-get update -y && apt dist-upgrade -y + +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y slapd ldap-utils + +EXPOSE 389 + +ADD slapd.sh /opt/slapd + +RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +CMD /opt/slapd diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c0eb379 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +version: "2.4" + +services: + ldap: + build: + context: . + dockerfile: Dockerfile + args: + - LDAP_ADMIN_PASSWORD=${LDAP_ADMIN_PASSWORD} + - LDAP_ORGANISATION=${LDAP_ORGANISATION} + - LDAP_DOMAIN=${LDAP_DOMAIN} + diff --git a/env.sample b/env.sample new file mode 100644 index 0000000..fb5aae0 --- /dev/null +++ b/env.sample @@ -0,0 +1,3 @@ +LDAP_ADMIN_PASSWORD=admin +LDAP_ORGANISATION=organisation +LDAP_DOMAIN=domain diff --git a/slapd.sh b/slapd.sh new file mode 100755 index 0000000..a61ab15 --- /dev/null +++ b/slapd.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +set -eu + +status () { + echo "---> ${@}" >&2 +} + +set -x +: LDAP_ADMIN_PASSWORD=${LDAP_ADMIN_PASSWORD} +: LDAP_DOMAIN=${LDAP_DOMAIN} +: LDAP_ORGANISATION=${LDAP_ORGANISATION} + +if [ ! -e /var/lib/ldap/docker_bootstrapped ]; then + status "configuring slapd for first run" + + cat <