Skip to content

Commit

Permalink
slapd docker image: make added schema definitions configurable by ENV…
Browse files Browse the repository at this point in the history
… LDAP_INIT_SCHEMA fix dcm4che/dcm4chee-arc-light#2804

slapd docker image: replace ENV EXT_INIT_CONFIG by LDAP_INIT_CONFIG fix dcm4che/dcm4chee-arc-light#2805
  • Loading branch information
gunterze committed Oct 2, 2020
1 parent edec71e commit 86ee99f
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 45 deletions.
10 changes: 5 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
FROM dcm4che/slapd:2.4.50

# Default configuration: can be overridden at the docker command line
ENV ARCHIVE_DEVICE_NAME=dcm4chee-arc \
ENV LDAP_INIT_SCHEMA="dicom.ldif dcm4che.ldif dcm4chee-archive.ldif dcm4chee-archive-ui.ldif" \
LDAP_UPDATE_SCHEMA="dicom-modify.ldif dcm4che-modify.ldif dcm4chee-archive-modify.ldif dcm4chee-archive-ui-modify.ldif" \
LDAP_INIT_CONFIG="default-config.ldif add-vendor-data.ldif default-ui-config.ldif default-users.ldif" \
ARCHIVE_DEVICE_NAME=dcm4chee-arc \
ARCHIVE_WEBAPP_NAME=dcm4chee-arc \
AE_TITLE=DCM4CHEE \
AE_TITLE_IOCM_REGULAR_USE=IOCM_REGULAR_USE \
Expand All @@ -26,10 +29,7 @@ ENV ARCHIVE_DEVICE_NAME=dcm4chee-arc \
SYSLOG_PROTOCOL=UDP \
SYSLOG_TLS_PORT=6514 \
STORAGE_DIR=/opt/wildfly/standalone/data/fs1 \
ELASTICSEARCH_URL=http://localhost:9200 \
SKIP_INIT_CONFIG=false \
EXT_INIT_CONFIG= \
IMPORT_LDIF=
ELASTICSEARCH_URL=http://localhost:9200

COPY ldap /etc/openldap
COPY bin /usr/bin
Expand Down
49 changes: 19 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,18 @@ None | (32768, 0x8000)

Set to `32768` by default.

### `LDAP_INIT_SCHEMA`

Space separated list of schema definition LDIF files applied at first LDAP startup.
Relative file paths are resolved against `/etc/openldap/schema/`.
`dicom.ldif dcm4che.ldif dcm4chee-archive.ldif dcm4chee-archive-ui.ldif` by default.

### `LDAP_UPDATE_SCHEMA`

Space separated list of schema definition update LDIF files applied by script `update-schema`.
Relative file paths are resolved against `/etc/openldap/schema/`.
`dicom-modify.ldif dcm4che-modify.ldif dcm4chee-archive-modify.ldif dcm4chee-archive-ui-modify.ldif` by default.

### `LDAP_BASE_DN`

Base domain name for LDAP (optional, default is `dc=dcm4che,dc=org`).
Expand Down Expand Up @@ -303,38 +315,15 @@ is `http://localhost:9200`.

### `SKIP_INIT_CONFIG`

Skip the default initial configuration (required by archive device) at first LDAP startup. Default value is set to `false`.

### `EXT_INIT_CONFIG`
Skip the default initial configuration (required by archive device) at first LDAP startup. Default value is `false`.

Space separated LDIF files to be imported additionally at first LDAP startup
### `LDAP_INIT_CONFIG`
Space separated list of LDIF files to be imported at first LDAP startup.
Relative file paths are resolved against `/etc/openldap/data/`.
`default-config.ldif add-vendor-data.ldif default-ui-config.ldif default-users.ldif` by default.

replacing | by
-- | --
`dc=dcm4che,dc=org` | `${LDAP_BASE_DN}`
`dcm4chee-arc` | `${ARCHIVE_DEVICE_NAME}`
`DCM4CHEE` | `${AE_TITLE}`
`IOCM_REGULAR_USE` | `${AE_TITLE_IOCM_REGULAR_USE}`
`IOCM_QUALITY` | `${AE_TITLE_IOCM_QUALITY}`
`IOCM_PAT_SAFETY` | `${AE_TITLE_IOCM_PAT_SAFETY}`
`IOCM_WRONG_MWL` | `${AE_TITLE_IOCM_WRONG_MWL}`
`IOCM_EXPIRED` | `${AE_TITLE_IOCM_EXPIRED}`
`AS_RECEIVED` | `${AE_TITLE_AS_RECEIVED}`
`archive-host` | `${ARCHIVE_HOST}`
`scheduledstation` | `${SCHEDULED_STATION_DEVICE_NAME}`
`SCHEDULEDSTATION` | `${SCHEDULED_STATION_AE_TITLE}`
`keycloak` | `${KEYCLOAK_DEVICE_NAME}`
`keycloak-host` | `${KEYCLOAK_HOST}`
`11112` | `${DICOM_PORT}`
`2575` | `${HL7_PORT}`
`logstash` | `${SYSLOG_DEVICE_NAME}`
`syslog-host` | `${SYSLOG_HOST}`
`514` | `${SYSLOG_PORT}`
`SYSLOG_UDP` | `SYSLOG_${SYSLOG_PROTOCOL}`
`${jboss.server.data.url}/fs1` | `file://${STORAGE_DIR}`
`http://localhost:9200` | `${ELASTICSEARCH_URL}`

Only effective if `SKIP_INIT_CONFIG=false`. Not set by default.
Not effective if `SKIP_INIT_CONFIG=true`.

### `IMPORT_LDIF`

Expand Down
9 changes: 5 additions & 4 deletions bin/update-schema
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

. /setenv.sh

ldapmodify -xw $LDAP_CONFIGPASS -D cn=admin,cn=config -H "$LDAP_URLS" -f /etc/openldap/schema/dicom-modify.ldif
ldapmodify -xw $LDAP_CONFIGPASS -D cn=admin,cn=config -H "$LDAP_URLS" -f /etc/openldap/schema/dcm4che-modify.ldif
ldapmodify -xw $LDAP_CONFIGPASS -D cn=admin,cn=config -H "$LDAP_URLS" -f /etc/openldap/schema/dcm4chee-archive-modify.ldif
ldapmodify -xw $LDAP_CONFIGPASS -D cn=admin,cn=config -H "$LDAP_URLS" -f /etc/openldap/schema/dcm4chee-archive-ui-modify.ldif
cd /etc/openldap/schema
for f in $LDAP_UPDATE_SCHEMA; do
ldapmodify -xw $LDAP_CONFIGPASS -D cn=admin,cn=config -H "$LDAP_URLS" -f $f
done

2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
ldap:
image: dcm4che/slapd-dcm4chee:2.4.50-22.3
image: dcm4che/slapd-dcm4chee:2.4.50-22.6
environment:
LDAP_URLS: "ldap:/// ldaps:///"
ports:
Expand Down
10 changes: 5 additions & 5 deletions ldap/configure.sh
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#!/bin/sh

ldapadd -xw $LDAP_CONFIGPASS -D cn=admin,cn=config -H "$LDAP_URLS" -f /etc/openldap/schema/dicom.ldif
ldapadd -xw $LDAP_CONFIGPASS -D cn=admin,cn=config -H "$LDAP_URLS" -f /etc/openldap/schema/dcm4che.ldif
ldapadd -xw $LDAP_CONFIGPASS -D cn=admin,cn=config -H "$LDAP_URLS" -f /etc/openldap/schema/dcm4chee-archive.ldif
ldapadd -xw $LDAP_CONFIGPASS -D cn=admin,cn=config -H "$LDAP_URLS" -f /etc/openldap/schema/dcm4chee-archive-ui.ldif
cd /etc/openldap/schema
for f in $LDAP_INIT_SCHEMA; do
ldapadd -xw $LDAP_CONFIGPASS -D cn=admin,cn=config -H "$LDAP_URLS" -f $f
done

. merge-vendor-data.sh

Expand All @@ -27,7 +27,7 @@ if [ "$SKIP_INIT_CONFIG" != "true" ]; then
else
dcmInvokeImageDisplayURLTarget="/^dcmProperty: IID_URL_TARGET=/d"
fi
for f in default-config.ldif add-vendor-data.ldif default-ui-config.ldif default-users.ldif $EXT_INIT_CONFIG; do
for f in $LDAP_INIT_CONFIG; do
sed -e "${dcmInvokeImageDisplayPatientURL}" \
-e "${dcmInvokeImageDisplayStudyURL}" \
-e "${dcmInvokeImageDisplayURLTarget}" \
Expand Down

0 comments on commit 86ee99f

Please sign in to comment.