From 0fcf1233655f6ee2f1a6768be6101984609fc20e Mon Sep 17 00:00:00 2001
From: casell <casell@users.noreply.github.com>
Date: Thu, 07 Apr 2022 10:58:20 +0000
Subject: [PATCH] Refactor Dockerfile debian and alpine (#216)

---
 opendj-packages/opendj-docker/alpine/Dockerfile |   52 ++++++++++++++++----------
 opendj-packages/opendj-docker/Dockerfile        |   60 ++++++++++++-----------------
 2 files changed, 57 insertions(+), 55 deletions(-)

diff --git a/opendj-packages/opendj-docker/Dockerfile b/opendj-packages/opendj-docker/Dockerfile
index 0c30e04..201ed80 100644
--- a/opendj-packages/opendj-docker/Dockerfile
+++ b/opendj-packages/opendj-docker/Dockerfile
@@ -2,49 +2,39 @@
 
 MAINTAINER Open Identity Platform Community <open-identity-platform-opendj@googlegroups.com>
 
-ENV ADD_BASE_ENTRY="--addBaseEntry"
-
-ENV PORT=1389
-
-ENV LDAPS_PORT=1636
-
-ENV BASE_DN=${BASE_DN:-"dc=example,dc=com"}
-
-ENV ROOT_USER_DN=${ROOT_USER_DN:-"cn=Directory Manager"}
-
-ENV ROOT_PASSWORD=${ROOT_PASSWORD:-"password"}
-
-ENV SECRET_VOLUME=${SECRET_VOLUME}
-
-ENV OPENDJ_SSL_OPTIONS=${SSL_OPTIONS:-"--generateSelfSignedCertificate"}
-
-ENV MASTER_SERVER=${MASTER_SERVER}
-
-ENV OPENDJ_REPLICATION_TYPE=${OPENDJ_REPLICATION_TYPE}
-
-ENV OPENDJ_USER="opendj"
+ENV ADD_BASE_ENTRY="--addBaseEntry" \
+    PORT=1389 \
+    LDAPS_PORT=1636 \
+    BASE_DN=${BASE_DN:-"dc=example,dc=com"} \
+    ROOT_USER_DN=${ROOT_USER_DN:-"cn=Directory Manager"} \
+    ROOT_PASSWORD=${ROOT_PASSWORD:-"password"} \
+    SECRET_VOLUME=${SECRET_VOLUME} \
+    OPENDJ_SSL_OPTIONS=${SSL_OPTIONS:-"--generateSelfSignedCertificate"} \
+    MASTER_SERVER=${MASTER_SERVER} \
+    OPENDJ_REPLICATION_TYPE=${OPENDJ_REPLICATION_TYPE} \
+    OPENDJ_USER="opendj"
 
 WORKDIR /opt
 
 ADD target/opendj-*.zip .
 
-RUN apt-get update && apt-get install -y --no-install-recommends  unzip  && rm -rf /var/lib/apt/lists/*
-RUN unzip opendj-*.zip && rm -r opendj-*.zip
+RUN apt-get update \
+ && apt-get install -y --no-install-recommends unzip \
+ && unzip opendj-*.zip \
+ && apt-get remove -y --purge unzip \
+ && rm -rf /var/lib/apt/lists/* \
+ && rm -r opendj-*.zip \
+ && groupadd $OPENDJ_USER \
+ && useradd -m -r -u 1001 -g $OPENDJ_USER $OPENDJ_USER \
+ && install -d -o $OPENDJ_USER /opt/opendj/data \
+ && chown -R $OPENDJ_USER:$OPENDJ_USER /opt/opendj \
+ && chmod -R g=u /opt/opendj
 
-ADD bootstrap/ /opt/opendj/bootstrap/
+COPY --chown=$OPENDJ_USER:$OPENDJ_USER bootstrap/ /opt/opendj/bootstrap/
 
-ADD run.sh /opt/opendj/run.sh
+COPY --chown=$OPENDJ_USER:$OPENDJ_USER run.sh /opt/opendj/run.sh
 
-RUN groupadd $OPENDJ_USER 
-
-RUN useradd -m -r -u 1001 -g $OPENDJ_USER $OPENDJ_USER \
-    && install -d -o $OPENDJ_USER /opt/opendj/data
-
-RUN chown -R $OPENDJ_USER:$OPENDJ_USER /opt/opendj && \
-    chmod -R g=u /opt/opendj && \
-    chmod +x /opt/opendj/run.sh \
-     /opt/opendj/bootstrap/setup.sh \
-     /opt/opendj/bootstrap/replicate.sh
+RUN chmod +x /opt/opendj/run.sh /opt/opendj/bootstrap/setup.sh /opt/opendj/bootstrap/replicate.sh
 
 EXPOSE $PORT $LDAPS_PORT 4444
 
diff --git a/opendj-packages/opendj-docker/alpine/Dockerfile b/opendj-packages/opendj-docker/alpine/Dockerfile
index d70ee4f..f36a9ba 100644
--- a/opendj-packages/opendj-docker/alpine/Dockerfile
+++ b/opendj-packages/opendj-docker/alpine/Dockerfile
@@ -2,31 +2,43 @@
 
 MAINTAINER Open Identity Platform Community <open-identity-platform-opendj@googlegroups.com>
 
-ARG ADD_BASE_ENTRY="--addBaseEntry"
-
-ARG PORT=1389
-
-ARG LDAPS_PORT=1636
-
-ARG BASE_DN="dc=example,dc=com"
-
-ARG ROOT_USER_DN="cn=Directory Manager"
-
-ARG ROOT_PASSWORD=password
+ENV ADD_BASE_ENTRY="--addBaseEntry" \
+    PORT=1389 \
+    LDAPS_PORT=1636 \
+    BASE_DN=${BASE_DN:-"dc=example,dc=com"} \
+    ROOT_USER_DN=${ROOT_USER_DN:-"cn=Directory Manager"} \
+    ROOT_PASSWORD=${ROOT_PASSWORD:-"password"} \
+    SECRET_VOLUME=${SECRET_VOLUME} \
+    OPENDJ_SSL_OPTIONS=${SSL_OPTIONS:-"--generateSelfSignedCertificate"} \
+    MASTER_SERVER=${MASTER_SERVER} \
+    OPENDJ_REPLICATION_TYPE=${OPENDJ_REPLICATION_TYPE} \
+    OPENDJ_USER="opendj"
 
 ARG VERSION=@project_version@
 
 WORKDIR /opt
 
-RUN apk add --update --no-cache wget unzip && apk --update upgrade --no-cache
+RUN apk add --update --no-cache --virtual builddeps wget unzip \
+ && apk upgrade --update --no-cache \
+ && apk add bash \
+ && wget --quiet https://github.com/OpenIdentityPlatform/OpenDJ/releases/download/$VERSION/opendj-$VERSION.zip \
+ && unzip opendj-$VERSION.zip \
+ && apk del builddeps \
+ && rm -r opendj-$VERSION.zip \
+ && addgroup -S $OPENDJ_USER \
+ && adduser -S -u 1001 -G $OPENDJ_USER $OPENDJ_USER \
+ && install -d -o $OPENDJ_USER /opt/opendj/data \
+ && chown -R $OPENDJ_USER:$OPENDJ_USER /opt/opendj \
+ && chmod -R g=u /opt/opendj
 
-RUN wget --quiet \
-  https://github.com/OpenIdentityPlatform/OpenDJ/releases/download/$VERSION/opendj-$VERSION.zip && \
-  unzip opendj-$VERSION.zip && \
-  rm -r opendj-$VERSION.zip
+COPY --chown=$OPENDJ_USER:$OPENDJ_USER bootstrap/ /opt/opendj/bootstrap/
 
-RUN /opt/opendj/setup --cli -p $PORT --ldapsPort $LDAPS_PORT --enableStartTLS \
-  --generateSelfSignedCertificate --baseDN "$BASE_DN" -h localhost --rootUserDN "$ROOT_USER_DN" \
-  --rootUserPassword "$ROOT_PASSWORD" --acceptLicense --no-prompt --doNotStart $ADD_BASE_ENTRY
+COPY --chown=$OPENDJ_USER:$OPENDJ_USER run.sh /opt/opendj/run.sh
 
-CMD ["/opt/opendj/bin/start-ds", "--nodetach"]
+RUN chmod +x /opt/opendj/run.sh /opt/opendj/bootstrap/setup.sh /opt/opendj/bootstrap/replicate.sh
+
+EXPOSE $PORT $LDAPS_PORT 4444
+
+USER $OPENDJ_USER
+
+ENTRYPOINT ["/opt/opendj/run.sh"]

--
Gitblit v1.10.0