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:

Hi @Ahmad_Qasem, Are you using a brand new database, or upgrading an existing one? You could try clearing the temp and work folders under your Tomcat home directory, then restart Liferay to see if that helps. If this is a fresh install with a new database, you can also try deleting the current lportal schema, creating a new one, and then restarting Liferay. Cheers, Ally

Hi @Alison_McGill it's a new DB ( Fresh Environment ) It's docker-compose should I take an sql connection then remove the schema via sql ?