Elastic Search cannot get the information from Elasticsearch cluster

I am using a Docker Compose file to start the Zeebe broker, Operate, and Tasklist. However, I am encountering the following log message:
tasklist | io.camunda.tasklist.es.ElasticsearchConnector - Elasticsearch cluster is not accessible

As a result, my process instances do not appear in Operate, and no tasks are displayed in Tasklist.
docker compose file :

services:
  zeebe:
    image: camunda/zeebe:8.6.5
    container_name: zeebe
    ports:
      - "26500:26500" # Zeebe gRPC
      - "9600:9600"   # Zeebe Monitoring
    environment:
      - ZEEBE_LOG_LEVEL=debug
      - ZEEBE_BROKER_EXPORTERS_ELASTICSEARCH_CLASSNAME=io.camunda.zeebe.exporter.ElasticsearchExporter
      - ZEEBE_BROKER_EXPORTERS_ELASTICSEARCH_ARGS_URL=http://elasticsearch:9200
      - ZEEBE_BROKER_EXPORTERS_ELASTICSEARCH_ARGS_BULK_SIZE=1
      - ZEEBE_BROKER_DATA_DISKUSAGECOMMANDWATERMARK=0.998
      - ZEEBE_BROKER_DATA_DISKUSAGEREPLICATIONWATERMARK=0.999
      - "JAVA_TOOL_OPTIONS=-Xms512m -Xmx512m"
    restart: always
    volumes:
      - zeebe-data:/usr/local/zeebe/data
    networks:
      - camunda-platform
    depends_on:
      - elasticsearch

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.0
    container_name: elasticsearch
    ports:
      - "9200:9200" # Elasticsearch REST API
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - network.host=0.0.0.0
      - cluster.routing.allocation.disk.threshold_enabled=false
      - xpack.security.enabled=false
      - "ES_JAVA_OPTS=-Xms2g -Xmx2g"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    restart: always
    volumes:
      - elastic-data:/usr/share/elasticsearch/data
    healthcheck:
      test: ["CMD-SHELL", "curl -s http://localhost:9200/_cat/health | grep -q green"]
      interval: 30s
      timeout: 5s
      retries: 5
    networks:
      - camunda-platform

  operate:
    image: camunda/operate:8.6.5
    container_name: operate
    ports:
      - "8081:8080"
    environment:
      - CAMUNDA_OPERATE_ZEEBE_GATEWAYADDRESS=zeebe:26500
      - CAMUNDA_OPERATE_ELASTICSEARCH_URL=http://elasticsearch:9200
      - CAMUNDA_OPERATE_ZEEBEELASTICSEARCH_URL=http://elasticsearch:9200
    networks:
      - camunda-platform
    depends_on:
      elasticsearch:
        condition: service_healthy
      zeebe:
        condition: service_started

  tasklist:
    image: camunda/tasklist:8.6.5
    container_name: tasklist
    ports:
      - "8082:8080"
    environment:
      - CAMUNDA_TASKLIST_ZEEBE_GATEWAYADDRESS=zeebe:26500
      - CAMUNDA_TASKLIST_ELASTICSEARCH_URL=http://elasticsearch:9200
      - CAMUNDA_TASKLIST_ZEEBEELASTICSEARCH_URL=http://elasticsearch:9200
    networks:
      - camunda-platform
    depends_on:
      elasticsearch:
        condition: service_healthy
      zeebe:
        condition: service_started

volumes:
  zeebe-data:
  elastic-data:

networks:
  camunda-platform:

the application.yml:

zeebe:
  client:
    gateway:
      address: localhost:26500
    security:
      plaintext: true

camunda.bpm:
  admin-user:
    id: demo
    password: demo
    firstName: Demo
  filter:
    create: All tasks

camunda:
  tasklist:
    # Elasticsearch (ELS) configuration for Tasklist
    elasticsearch:
      clusterName: elasticsearch         # Elasticsearch Cluster Name
      url: http://elasticsearch:9200     # URL of Elasticsearch REST API
      username: elastic                  # Optional: Username for Elasticsearch
      password: changeme                 # Optional: Password for Elasticsearch
      ssl:
        selfSigned: true                 # If using self-signed certificates
        verifyHostname: false            # Disable hostname verification
    # Zeebe connection
    zeebe:
      gatewayAddress: zeebe:26500        # Address of Zeebe Gateway
    # Zeebe Elasticsearch exporter configuration
    zeebeElasticsearch:
      clusterName: elasticsearch         # Elasticsearch Cluster Name
      url: http://elasticsearch:9200     # URL of Elasticsearch REST API
      prefix: zeebe-record               # Index prefix, configured in Zeebe Elasticsearch exporter
      username: elastic                  # Optional: Username for Elasticsearch
      password: changeme                 # Optional: Password for Elasticsearch
      ssl:
        selfSigned: true                 # If using self-signed certificates
        verifyHostname: false            # Disable hostname verification

  operate:
    # Elasticsearch (ELS) configuration for Operate
    elasticsearch:
      url: http://elasticsearch:9200     # URL of Elasticsearch REST API
      username: elastic                  # Optional: Username for Elasticsearch
      password: changeme                 # Optional: Password for Elasticsearch
    # Zeebe connection
    zeebe:
      gateway-address: zeebe:26500       # Address of Zeebe Gateway

server:
  servlet:
    context-path: /tasklist              # Optional: Customize context path for Tasklist

management:
  health:
    defaults:
      enabled: false                     # Disable default health indicators
    probes:
      enabled: true                      # Enable Kubernetes health groups
  endpoints:
    web:
      exposure:
        include: health, prometheus      # Enable health check and metrics endpoints

Would you please share your environment details like CPU/Memory/OS and chart link where you used for setup…

Most of the times, ELK won’t start due to insufficient resources, which blocks zeebe and dependent component won’t start.