Liferay 2026 Q1 Docker compose

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: