From f6bb33a12ed6d74e7abaa229684c3354c023f24c Mon Sep 17 00:00:00 2001 From: Will Mooreston <97046018+labkey-willm@users.noreply.github.com> Date: Tue, 8 Sep 2026 11:52:27 -0700 Subject: [PATCH] Kanban #2052: add lksm_professional docker-compose service (#199) (#201) LksmProfessionalContainerNightly's smoke test brings up a service named after the distro, but only community/allpg/enterprise/lims_starter existed - mirrors the lims_starter/pg-lims_starter pair. --- docker-compose.yml | 88 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index e4d207a..0b5659c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -515,6 +515,94 @@ services: ports: - ${PG_PORT:-54321}:5432 + lksm_professional: + image: ${COMPOSE_IMAGE:-labkey/community} + container_name: lksm_professional + depends_on: + - pg-lksm_professional + ports: + - ${HOST_PORT:-8443}:8443 + - 7199:7199 + volumes: + - ./mounts/logs:/labkey/logs + environment: + - LOG_LEVEL_SPRING_WEB=INFO + - LOG_LEVEL_TOMCAT=DEBUG + - LOG_LEVEL_DEFAULT=DEBUG + - LOG_LEVEL_LABKEY_DEFAULT=DEBUG + - LOG_LEVEL_API_SETTINGS=DEBUG + - LOG_LEVEL_API_MODULELOADER=DEBUG + + - LOGGER_PATTERN=%-80.80logger{79} + + - POSTGRES_HOST=pg-lksm_professional + + - MAX_JVM_RAM_PERCENT=${MAX_JVM_RAM_PERCENT:-75.0} + - JAVA_PRE_JAR_EXTRA=-XX:+UseSerialGC -Xss512k + + - SMTP_HOST=${SMTP_HOST} + - SMTP_AUTH=true + - SMTP_PORT=587 + - SMTP_STARTTLS=true + + - LABKEY_SYSTEM_EMAIL_ADDRESS=${SMTP_FROM} + + - LABKEY_SSM_PREFIX=${LABKEY_SSM_PREFIX} + - LABKEY_VPC_SSM_PREFIX=${LABKEY_VPC_SSM_PREFIX} + - AWS_REGION=${AWS_REGION} + - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} + - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} + - AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN} + # non-AWS: set these to supply credentials directly instead of via SSM + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-localdevpassword} + - POSTGRES_USER=${POSTGRES_USER:-postgres} + - LABKEY_EK=${LABKEY_EK:-} + - SMTP_USER=${SMTP_USER:-} + - SMTP_PASSWORD=${SMTP_PASSWORD:-} + + # If these parameters are set or set to null use provided; else set values to create initial user + - LABKEY_CREATE_INITIAL_USER=${LABKEY_CREATE_INITIAL_USER-1} + - LABKEY_CREATE_INITIAL_USER_APIKEY=${LABKEY_CREATE_INITIAL_USER_APIKEY-1} + + - POSTGRES_MAX_TOTAL_CONNECTIONS=${POSTGRES_MAX_TOTAL_CONNECTIONS:-50} + - POSTGRES_MAX_IDLE_CONNECTIONS=${POSTGRES_MAX_IDLE_CONNECTIONS:-10} + - POSTGRES_MAX_WAIT_MILLIS=${POSTGRES_MAX_WAIT_MILLIS:-120000} + - POSTGRES_ACCESS_UNDERLYING_CONNECTIONS=${POSTGRES_ACCESS_UNDERLYING_CONNECTIONS:-true} + - POSTGRES_VALIDATION_QUERY=${POSTGRES_VALIDATION_QUERY:-SELECT 1} + + - LABKEY_CUSTOM_PROPERTIES_S3_URI=${LABKEY_CUSTOM_PROPERTIES_S3_URI} + - LABKEY_OPTIONAL_APP_PROPERTIES_S3_URI=${LABKEY_OPTIONAL_APP_PROPERTIES_S3_URI} + - LABKEY_DEFAULT_PROPERTIES_S3_URI=${LABKEY_DEFAULT_PROPERTIES_S3_URI} + - LOG4J_CONFIG_FILE=${LOG4J_CONFIG_FILE-log4j2.xml} + - LOG4J_CONFIG_OVERRIDE=${LOG4J_CONFIG_OVERRIDE} + - JSON_OUTPUT=${JSON_OUTPUT-false} + - DD_COLLECT_APM=${DD_COLLECT_APM-false} + - SLEEP=${SLEEP:-0} + - PURGE_HEAP_AND_ERROR_LOGS_OLDER_THAN_DAYS=${PURGE_HEAP_AND_ERROR_LOGS_OLDER_THAN_DAYS:-90} + - PURGE_MTNC_LOGS_OLDER_THAN_DAYS=${PURGE_MTNC_LOGS_OLDER_THAN_DAYS:-90} + - LABKEY_EXTERNAL_MODULES=${LABKEY_EXTERNAL_MODULES:-/labkey/files/externalModules} + + pg-lksm_professional: + image: postgres:${PG_VERSION:-18} + entrypoint: + - "/bin/bash" + - "-c" + - "docker-entrypoint.sh postgres" + environment: + - POSTGRES_USER=${POSTGRES_USER:-postgres} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-localdevpassword} + - PGDATA=/var/lib/postgresql/data + healthcheck: + test: ["CMD", "pg_isready", "-U", "postgres"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + volumes: + - ./pgdata/${IDENT:-postgres}-${PG_VERSION:-18}-data:/var/lib/postgresql/data + ports: + - ${PG_PORT:-54321}:5432 + # below can optionally be added to services above as needed