From 832a96f1f4660c10d3e5abffa14269d8c7f4fcb0 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Fri, 14 Mar 2025 10:58:27 +0000
Subject: [PATCH] Fix docker env variables + add VERSION autodetect (#493)
---
opendj-packages/opendj-docker/Dockerfile-alpine | 36 ++++++++++--------
opendj-packages/opendj-docker/README.md | 10 +++--
opendj-packages/opendj-docker/Dockerfile | 36 ++++++++++--------
3 files changed, 46 insertions(+), 36 deletions(-)
diff --git a/opendj-packages/opendj-docker/Dockerfile b/opendj-packages/opendj-docker/Dockerfile
index 4d16313..8d153f1 100644
--- a/opendj-packages/opendj-docker/Dockerfile
+++ b/opendj-packages/opendj-docker/Dockerfile
@@ -1,27 +1,31 @@
FROM eclipse-temurin:21-jre-jammy
-MAINTAINER Open Identity Platform Community <open-identity-platform-opendj@googlegroups.com>
+LABEL org.opencontainers.image.authors="Open Identity Platform Community"
-ENV ADD_BASE_ENTRY="--addBaseEntry" \
- PORT=1389 \
- LDAPS_PORT=1636 \
- ADMIN_PORT=4444 \
- 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" \
- OPENDJ_JAVA_ARGS="-server -XX:+UseContainerSupport"
+ENV ADD_BASE_ENTRY="--addBaseEntry"
+ENV PORT=1389
+ENV LDAPS_PORT=1636
+ENV ADMIN_PORT=4444
+ENV BASE_DN="dc=example,dc=com"
+ENV ROOT_USER_DN="cn=Directory Manager"
+ENV ROOT_PASSWORD="password"
+#ENV SECRET_VOLUME
+ENV OPENDJ_SSL_OPTIONS="--generateSelfSignedCertificate"
+#ENV MASTER_SERVER
+#ENV OPENDJ_REPLICATION_TYPE
+ENV OPENDJ_USER="opendj"
+ENV OPENDJ_JAVA_ARGS="-server"
+ENV BACKEND_TYPE="je"
+ENV BACKEND_DB_DIRECTORY="db"
+#ENV SETUP_ARGS
-ARG VERSION=@project_version@
+ARG VERSION
WORKDIR /opt
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl unzip \
+ && if [ -z "$VERSION" ] ; then VERSION="$(curl -i -o - --silent https://api.github.com/repos/OpenIdentityPlatform/OpenDJ/releases/latest | grep -m1 "\"name\"" | cut -d\" -f4)"; fi \
&& curl -L https://github.com/OpenIdentityPlatform/OpenDJ/releases/download/$VERSION/opendj-$VERSION.zip --output opendj-$VERSION.zip \
&& unzip opendj-$VERSION.zip \
&& apt-get remove -y --purge curl unzip \
@@ -38,7 +42,7 @@
RUN chmod +x /opt/opendj/run.sh /opt/opendj/bootstrap/setup.sh /opt/opendj/bootstrap/replicate.sh
-EXPOSE $PORT $LDAPS_PORT $ADMIN_PORT
+EXPOSE $PORT/tcp $LDAPS_PORT/tcp $ADMIN_PORT/tcp
USER $OPENDJ_USER
diff --git a/opendj-packages/opendj-docker/Dockerfile-alpine b/opendj-packages/opendj-docker/Dockerfile-alpine
index 61d8e05..ba7aca4 100644
--- a/opendj-packages/opendj-docker/Dockerfile-alpine
+++ b/opendj-packages/opendj-docker/Dockerfile-alpine
@@ -1,28 +1,32 @@
FROM openjdk:8-jre-alpine
-MAINTAINER Open Identity Platform Community <open-identity-platform-opendj@googlegroups.com>
+LABEL org.opencontainers.image.authors="Open Identity Platform Community"
-ENV ADD_BASE_ENTRY="--addBaseEntry" \
- PORT=1389 \
- LDAPS_PORT=1636 \
- ADMIN_PORT=4444 \
- 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"\
- OPENDJ_JAVA_ARGS="-server -XX:+UseContainerSupport"
+ENV ADD_BASE_ENTRY="--addBaseEntry"
+ENV PORT=1389
+ENV LDAPS_PORT=1636
+ENV ADMIN_PORT=4444
+ENV BASE_DN="dc=example,dc=com"
+ENV ROOT_USER_DN="cn=Directory Manager"
+ENV ROOT_PASSWORD="password"
+#ENV SECRET_VOLUME
+ENV OPENDJ_SSL_OPTIONS="--generateSelfSignedCertificate"
+#ENV MASTER_SERVER
+#ENV OPENDJ_REPLICATION_TYPE
+ENV OPENDJ_USER="opendj"
+ENV OPENDJ_JAVA_ARGS="-server -XX:+UseG1GC -XX:+UseContainerSupport"
+ENV BACKEND_TYPE="je"
+ENV BACKEND_DB_DIRECTORY="db"
+#ENV SETUP_ARGS
-ARG VERSION=@project_version@
+ARG VERSION
WORKDIR /opt
RUN apk add --update --no-cache --virtual builddeps curl unzip \
&& apk upgrade --update --no-cache \
&& apk add bash \
+ && if [ -z "$VERSION" ] ; then VERSION="$(curl -i -o - --silent https://api.github.com/repos/OpenIdentityPlatform/OpenDJ/releases/latest | grep -m1 "\"name\"" | cut -d\" -f4)"; fi \
&& curl -L https://github.com/OpenIdentityPlatform/OpenDJ/releases/download/$VERSION/opendj-$VERSION.zip --output opendj-$VERSION.zip \
&& unzip opendj-$VERSION.zip \
&& apk del builddeps \
@@ -40,7 +44,7 @@
RUN chmod +x /opt/opendj/run.sh /opt/opendj/bootstrap/setup.sh /opt/opendj/bootstrap/replicate.sh
-EXPOSE $PORT $LDAPS_PORT $ADMIN_PORT
+EXPOSE $PORT/tcp $LDAPS_PORT/tcp $ADMIN_PORT/tcp
USER $OPENDJ_USER
diff --git a/opendj-packages/opendj-docker/README.md b/opendj-packages/opendj-docker/README.md
index d20b87b..5fcaddb 100644
--- a/opendj-packages/opendj-docker/README.md
+++ b/opendj-packages/opendj-docker/README.md
@@ -3,13 +3,13 @@
Build docker image:
```bash
-docker build -t openidentityplatform/opendj --build-arg VERSION=4.5.1 .
+docker build -t openidentityplatform/opendj .
```
Run image
```bash
-docker run -d -p 1389:1389 -p 1636:1636 -p 4444:4444 --name opendj openidentityplatform/opendj:4.5.1
+docker run -d -p 1389:1389 -p 1636:1636 -p 4444:4444 --name opendj openidentityplatform/opendj
```
## Environment Variables
@@ -25,8 +25,10 @@
| SECRET_VOLUME | - | Mounted keystore volume, if present copies keystore over |
| MASTER_SERVER | - | Replication master server |
| VERSION | - | OpenDJ version |
-| OPENDJ_USER | - | user which runs OpenDJ |
+| OPENDJ_USER | opendj | user which runs OpenDJ |
| OPENDJ_REPLICATION_TYPE | - | OpenDJ Replication type, valid values are: <ul><li>simple - standart replication</li><li>srs - standalone replication servers</li><li>sdsr - Standalone Directory Server Replicas</li><li>rg - Replication Groups</li></ul>Other values will be ignored |
| OPENDJ_SSL_OPTIONS | --generateSelfSignedCertificate | you can replace ssl options at here, like : "--usePkcs12keyStore /opt/domain.pfx --keyStorePassword domain" |
+| OPENDJ_JAVA_ARGS | -server | extra instance java args |
| BACKEND_TYPE | je | OpenDJ backend type, see [dsconfig create-backend](https://doc.openidentityplatform.org/opendj/reference/dsconfig-subcommands-ref#dsconfig-create-backend) documentation |
-| BACKEND_DB_DIRECTORY | db | OpenDJ `db-directory` attribute for backend |
\ No newline at end of file
+| BACKEND_DB_DIRECTORY | db | OpenDJ `db-directory` attribute for backend |
+| SETUP_ARGS | - | extra setup args |
\ No newline at end of file
--
Gitblit v1.10.0