Skip to content

Commit e6622f8

Browse files
authored
allow @files and externalModules dirs to persist on mounted storage (#154)
* stop creating @files volume locally, so it uses container default (EFS, usually) * purge 90+day old system maintenance files * allow externalModules dir to persist in mounted storage
1 parent fba8a46 commit e6622f8

File tree

6 files changed

+26
-19
lines changed

6 files changed

+26
-19
lines changed

Dockerfile

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,6 @@ RUN [ -n "${DEBUG}" ] && set -x; \
188188
mkdir -pv \
189189
"${LABKEY_FILES_ROOT}/@files" \
190190
"config" \
191-
"externalModules" \
192191
"logs" \
193192
"startup" \
194193
"${TOMCAT_BASE_DIR}" \
@@ -259,8 +258,6 @@ HEALTHCHECK \
259258
"https://localhost:${LABKEY_PORT}${HEALTHCHECK_ENDPOINT}" \
260259
|| exit 1
261260

262-
VOLUME "${LABKEY_FILES_ROOT}/@files"
263-
VOLUME "${LABKEY_HOME}/externalModules"
264261
VOLUME "${LABKEY_HOME}/logs"
265262

266263
EXPOSE ${LABKEY_PORT}

application.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ context.resources.jdbc.labkeyDataSource.maxWaitMillis=${POSTGRES_MAX_WAIT_MILLIS
9090
context.resources.jdbc.labkeyDataSource.accessToUnderlyingConnectionAllowed=${POSTGRES_ACCESS_UNDERLYING_CONNECTIONS}
9191
context.resources.jdbc.labkeyDataSource.validationQuery=${POSTGRES_VALIDATION_QUERY}
9292

93+
context.externalModules=${LABKEY_EXTERNAL_MODULES}
94+
9395
# send access logs to file:
9496
# server.tomcat.accesslog.directory=/tmp
9597
# server.tomcat.accesslog.enabled=true

docker-compose.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ services:
1818
volumes:
1919
- ./mounts/files:/labkey/files
2020
# - files:/labkey/files
21-
- ./mounts/modules:/labkey/externalModules
2221
- ./mounts/logs:/labkey/logs
2322
environment:
2423
# - DEBUG=1
@@ -132,7 +131,6 @@ services:
132131
volumes:
133132
- ./mounts/files:/labkey/files
134133
# - files:/labkey/files
135-
- ./mounts/modules:/labkey/externalModules
136134
- ./mounts/logs:/labkey/logs
137135
environment:
138136
# - DEBUG=1
@@ -244,7 +242,6 @@ services:
244242
volumes:
245243
- ./mounts/files:/labkey/files
246244
# - files:/labkey/files
247-
- ./mounts/modules:/labkey/externalModules
248245
- ./mounts/logs:/labkey/logs
249246
environment:
250247
# - DEBUG=1
@@ -357,7 +354,6 @@ services:
357354
volumes:
358355
- ./mounts/files:/labkey/files
359356
# - files:/labkey/files
360-
- ./mounts/modules:/labkey/externalModules
361357
- ./mounts/logs:/labkey/logs
362358
environment:
363359
# - DEBUG=1
@@ -427,6 +423,8 @@ services:
427423
- DD_COLLECT_APM=${DD_COLLECT_APM-false}
428424
- SLEEP=${SLEEP:-0}
429425
- PURGE_HEAP_AND_ERROR_LOGS_OLDER_THAN_DAYS=${PURGE_HEAP_AND_ERROR_LOGS_OLDER_THAN_DAYS:-90}
426+
- PURGE_MTNC_LOGS_OLDER_THAN_DAYS=${PURGE_MTNC_LOGS_OLDER_THAN_DAYS:-90}
427+
- LABKEY_EXTERNAL_MODULES=${LABKEY_EXTERNAL_MODULES:-/labkey/files/externalModules}
430428

431429
pg-lims_starter:
432430
image: postgres:15

entrypoint.sh

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,12 @@ JSON_OUTPUT="${JSON_OUTPUT:-false}"
2525
DD_COLLECT_APM="${DD_COLLECT_APM:-false}"
2626
JAVA_RMI_SERVER_HOSTNAME="${JAVA_RMI_SERVER_HOSTNAME:-}"
2727

28-
# set age past which old heap and error log directories are removed
28+
# set age past which old heap and error log directories and system maintenance files are removed
2929
PURGE_HEAP_AND_ERROR_LOGS_OLDER_THAN_DAYS="${PURGE_HEAP_AND_ERROR_LOGS_OLDER_THAN_DAYS:-90}"
30+
PURGE_MTNC_LOGS_OLDER_THAN_DAYS="${PURGE_MTNC_LOGS_OLDER_THAN_DAYS:-90}"
31+
32+
# set path to external modules)
33+
LABKEY_EXTERNAL_MODULES="${LABKEY_EXTERNAL_MODULES:-/labkey/files/externalModules}"
3034

3135
SLEEP="${SLEEP:=0}"
3236

@@ -147,9 +151,6 @@ main() {
147151
awsclibin/aws s3 cp $LABKEY_OPTIONAL_APP_PROPERTIES_S3_URI config/
148152
fi
149153

150-
echo "sleeping for $SLEEP seconds..."
151-
sleep $SLEEP
152-
153154
# echo "deleting awscli and unsetting AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, & AWS_SESSION_TOKEN, if set..."
154155
# rm -rf awsclibin aws-cli
155156
unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
@@ -258,20 +259,30 @@ main() {
258259
-Djava.rmi.server.hostname=${JAVA_RMI_SERVER_HOSTNAME}"
259260
fi
260261

261-
echo "Purging secrets and other bits from environment variables..."
262-
unset POSTGRES_USER POSTGRES_PASSWORD POSTGRES_HOST POSTGRES_PORT POSTGRES_DB POSTGRES_PARAMETERS
263-
unset SMTP_HOST SMTP_USER SMTP_PORT SMTP_PASSWORD SMTP_AUTH SMTP_FROM SMTP_STARTTLS
264-
unset LABKEY_CREATE_INITIAL_USER LABKEY_CREATE_INITIAL_USER_APIKEY LABKEY_INITIAL_USER_APIKEY LABKEY_INITIAL_USER_EMAIL LABKEY_INITIAL_USER_GROUP LABKEY_INITIAL_USER_ROLE
265-
unset LABKEY_EK SLEEP CONTAINER_PRIVATE_IP
266-
267262
echo "Creating new heap/error log directory..."
268263
HEAP_AND_ERROR_PATH="$LABKEY_HOME/files/heap_dumps_and_errors_$(date +%Y%m%d_%H%M%S)"
269264
mkdir -pv $HEAP_AND_ERROR_PATH
270265

266+
echo "Creating externalModules directory if it does not already exist..."
267+
mkdir -pv $LABKEY_EXTERNAL_MODULES
268+
271269
# purge old heap/error directories
272270
echo "Purging heap/error log directories older than $PURGE_HEAP_AND_ERROR_LOGS_OLDER_THAN_DAYS days..."
273271
find "$LABKEY_HOME/files/" -mindepth 1 -maxdepth 1 -type d -ctime +${PURGE_HEAP_AND_ERROR_LOGS_OLDER_THAN_DAYS} -name "heap*" | xargs rm -rf
274272

273+
# purge old system maintenance files
274+
echo "Purging system maintenance files older than $PURGE_MTNC_LOGS_OLDER_THAN_DAYS days..."
275+
find "$LABKEY_HOME/files/@files" -mindepth 1 -maxdepth 1 -type d -ctime +${PURGE_MTNC_LOGS_OLDER_THAN_DAYS} -name "system_maintenance*" | xargs rm -rf
276+
277+
echo "sleeping for $SLEEP seconds..."
278+
sleep $SLEEP
279+
280+
echo "Purging secrets and other bits from environment variables..."
281+
unset POSTGRES_USER POSTGRES_PASSWORD POSTGRES_HOST POSTGRES_PORT POSTGRES_DB POSTGRES_PARAMETERS
282+
unset SMTP_HOST SMTP_USER SMTP_PORT SMTP_PASSWORD SMTP_AUTH SMTP_FROM SMTP_STARTTLS
283+
unset LABKEY_CREATE_INITIAL_USER LABKEY_CREATE_INITIAL_USER_APIKEY LABKEY_INITIAL_USER_APIKEY LABKEY_INITIAL_USER_EMAIL LABKEY_INITIAL_USER_GROUP LABKEY_INITIAL_USER_ROLE
284+
unset LABKEY_EK SLEEP CONTAINER_PRIVATE_IP
285+
275286
# shellcheck disable=SC2086
276287
exec java \
277288
\
@@ -290,7 +301,6 @@ main() {
290301
\
291302
-Dlabkey.home="$LABKEY_HOME" \
292303
-Dlabkey.log.home="${LABKEY_HOME}/logs" \
293-
-Dlabkey.externalModulesDir="${LABKEY_HOME}/externalModules" \
294304
\
295305
-Djava.library.path=/usr/lib:/usr/lib/x86_64-linux-gnu \
296306
\

mounts/modules/.gitkeep

Whitespace-only changes.

quickstart_envs.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# example minimal set of environment variables to get started - see readme for additional envs you may wish to set
44

55
# embedded tomcat LabKey .jar version to build container with
6-
export LABKEY_VERSION="25.7"
6+
export LABKEY_VERSION="25.8"
77

88
# minimal SMTP settings
99
export SMTP_HOST="localhost"

0 commit comments

Comments
 (0)