I was running 2026 Q1.1 locally ( outside docker ) it ‘s working fine without any exception in startup logs . but when I move it to docker-compose I got this exception on startup
2026-04-01 06:38:52.957 INFO [fileinstall-directory-watcher][BaseAutoDeployListener:34] Copying themes for /opt/liferay/tomcat/temp/20260401063852730EFVXZLJU/admin-theme.war
2026-04-01 06:38:56.159 ERROR [http-nio-8080-exec-1][MainServlet:1132] java.lang.NullPointerException: Cannot invoke “com.liferay.portal.kernel.model.Group.getGroupId()” because “liveGroup” is null
com.liferay.portal.kernel.events.ActionException: java.lang.NullPointerException: Cannot invoke “com.liferay.portal.kernel.model.Group.getGroupId()” because “liveGroup” is null
at com.liferay.portal.events.ServicePreAction.run(ServicePreAction.java:153) ~[portal-impl.jar:?]
at com.liferay.portal.kernel.events.Action.processLifecycleEvent(Action.java:25) ~[portal-kernel.jar:?]
at com.liferay.portal.events.EventsProcessorUtil.process(EventsProcessorUtil.java:71) ~[portal-impl.jar:?]
at com.liferay.portal.events.EventsProcessorUtil.process(EventsProcessorUtil.java:43) ~[portal-impl.jar:?]
at com.liferay.portal.internal.servlet.MainServlet._processServicePre(MainServlet.java:1110) ~[portal-impl.jar:?]
at com.liferay.portal.internal.servlet.MainSer
Any feedback in this issue ?
docker-compose.yml
version: "3.8"
services:
postgres:
image: postgres:16
environment:
POSTGRES_DB: lportal
POSTGRES_USER: liferay
POSTGRES_PASSWORD: liferay
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U liferay -d lportal"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
elasticsearch:
build:
context: ./elasticsearch
image: liferay-elasticsearch:8.19.12
environment:
discovery.type: single-node
xpack.security.enabled: "false"
cluster.name: LiferayElasticsearch
ES_JAVA_OPTS: -Xms2g -Xmx2g
mem_limit: 4g
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es_data:/usr/share/elasticsearch/data
ports:
- "9200:9200"
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://localhost:9200/_cluster/health || exit 1"]
interval: 20s
timeout: 10s
retries: 10
restart: unless-stopped
liferay:
image: liferay/dxp:2026.q1.1-lts
depends_on:
postgres:
condition: service_healthy
elasticsearch:
condition: service_healthy
ports:
- "8080:8080"
environment:
LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_DRIVER_UPPERCASEC_LASS_UPPERCASEN_AME: org.postgresql.Driver
LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_URL: jdbc:postgresql://postgres:5432/lportal
LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_USERNAME: liferay
LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_PASSWORD: liferay
volumes:
- ./liferay/mount:/mnt/liferay
- ./liferay/data:/opt/liferay/data
- ./liferay/logs:/opt/liferay/logs
- ./liferay/tomcat/logs:/opt/liferay/tomcat/logs
restart: unless-stopped
volumes:
postgres_data:
es_data: