0

Getting error like - Could not validate a connection to Elasticsearch. No alive nodes found in your cluster

I am using docker for magento 2.4.1 while installation i am getting this error.

My docker-compose.yml.

    version: '3'
    services:
      nginx:
        build:
          args:
            nginx_port: 80
            nginx_version: ${NGINX_VERSION}
          context: ./docker/nginx
        depends_on:
          - php-fpm
        restart: always
        volumes:
          - ./config/nginx/nginx.conf:/etc/nginx/nginx.conf:cached
          - ./src/magento:/var/www/magento:cached
      php-fpm:
        build:
          args:
            php_version: ${PHP_VERSION}
          context: ./docker/php-fpm
        env_file:
          - .env
        depends_on:
          - cron
          - elasticsearch
          - mysql
          - rabbitmq
          - redis-fpc
          - redis-obj
          - redis-ses
        restart: always
        volumes:
          - ./src/magento:/var/www/magento:cached
          - ./config/composer/auth.json:/var/www/.composer/auth.json:cached
          - ./config/php/php.ini:/usr/local/etc/php/php.ini:cached
      cron:
        build:
          args:
            php_version: ${PHP_VERSION}
          context: ./docker/cron
        restart: always
        volumes:
          - ./src/magento:/var/www/magento:cached
      mysql:
        environment:
          - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
          - MYSQL_USER=${MYSQL_USER}
          - MYSQL_PASSWORD=${MYSQL_PASSWORD}
          - MYSQL_DATABASE=${MYSQL_DATABASE}
        image: percona:${MYSQL_VERSION}
        ports:
          - "3306:3306"
        restart: always
        volumes:
          - mysql-log:/var/log/mysql
          - mysql-lib:/var/lib/mysql
      redis-obj:
        image: redis:${REDIS_VERSION}
        ports:
          - "6379:6379"
        restart: always
      redis-fpc:
        command: redis-server /usr/local/etc/redis/redis.conf
        image: redis:${REDIS_VERSION}
        ports:
          - "6380:6380"
        restart: always
        volumes:
          - ./config/redis/fpc.conf:/usr/local/etc/redis/redis.conf
      redis-ses:
        command: redis-server /usr/local/etc/redis/redis.conf
        image: redis:${REDIS_VERSION}
        ports:
          - "6381:6381"
        restart: always
        volumes:
          - ./config/redis/ses.conf:/usr/local/etc/redis/redis.conf
      elasticsearch:
        image: elasticsearch:${ELASTICSEARCH_VERSION}
        environment:
          - ELASTICSEARCH_URL=http://elasticsearch:9200
          - "ES_JAVA_OPTS=-Xmx2g -Xms2g"
          - bootstrap.memory_lock=true
          - http.cors.enabled=true
          - http.cors.allow-origin=*
          - cluster.name=adlp-cluster
          - discovery.type=single-node
        ulimits:
          memlock:
            soft: -1
            hard: -1
        volumes:
          - data01:/usr/share/elasticsearch/data
        ports:
          - 9200:9200
        networks:
          - elastic
        #healthcheck:
        #    test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
        #    interval: 30s
        #    timeout: 30s
        #    retries: 3
        restart: always
      rabbitmq:
        image: rabbitmq:${RABBITMQ_VERSION}-management
        ports:
          - "5672:5672"
          - "15672:15672"
        restart: always
    volumes:
      mysql-log:
      mysql-lib:
      data01:
        driver: local
    networks:
      elastic:
        driver: bridge
    
    /*******************My .env file *********************************/
    
    # Versions
    NGINX_VERSION=1.18
    PHP_VERSION=7.4
    MAGENTO_VERSION=2.4
    MYSQL_VERSION=8.0
    REDIS_VERSION=6
    ELASTICSEARCH_VERSION=7.6.2
    RABBITMQ_VERSION=3.8.9
    
    # MySQL
    MYSQL_ROOT_PASSWORD=magento
    MYSQL_USER=magento
    MYSQL_PASSWORD=magento
    MYSQL_DATABASE=magento
    
    # Magento (required) - see https://devdocs.magento.com/guides/v2.2/install-gde/install/cli/install-cli-install.html
    MAGENTO_ADMIN_FIRSTNAME=Magento
    MAGENTO_ADMIN_LASTNAME=Development
    MAGENTO_ADMIN_EMAIL=deepakworldphp86@gmail.com
    MAGENTO_ADMIN_USER=dev
    MAGENTO_ADMIN_PASSWORD=password1
    
    # Magento (optional)
    MAGENTO_BASE_URL=http://m2.local.docker.com/
    MAGENTO_BACKEND_FRONTNAME=admin
    MAGENTO_DB_HOST=mysql
    MAGENTO_DB_NAME=magento
    MAGENTO_DB_USER=magento
    MAGENTO_DB_PASSWORD=magento
    # MAGENTO_DB_PREFIX
    MAGENTO_LANGUAGE=en_US
    MAGENTO_CURRENCY=USD
    MAGENTO_TIMEZONE=America/New_York
    MAGENTO_USE_REWRITES=1
    MAGENTO_USE_SECURE=1
    MAGENTO_BASE_URL_SECURE=https://m2.local.docker.com/
    MAGENTO_USE_SECURE_ADMIN=1
    # MAGENTO_ADMIN_USE_SECURITY_KEY
    # MAGENTO_SESSION_SAVE
    # MAGENTO_KEY
    # MAGENTO_CLEANUP_DATABASE
    # MAGENTO_DB_INIT_STATEMENTS
    # MAGENTO_SALES_ORDER_INCREMENT_PREFIX
    
    # Magento (optional, Magento Commerce only)
    # MAGENTO_AMQP_HOST
    # MAGENTO_AMQP_PORT
    # MAGENTO_AMQP_USER
    # MAGENTO_AMQP_PASSWORD
    # MAGENTO_AMQP_VIRTUALPORT
    # MAGENTO_AMQP_SSL
    
    # Magento (optional, Redis)
    MAGENTO_REDIS_OBJ_SERVER=redis-obj
    MAGENTO_REDIS_OBJ_PORT=6379
    MAGENTO_REDIS_OBJ_DATABASE=0
    #MAGENTO_REDIS_OBJ_PASSWORD
    #MAGENTO_REDIS_FPC_SERVER=redis-fpc
    #MAGENTO_REDIS_FPC_PORT=6380
    #MAGENTO_REDIS_FPC_DATABASE=0
    #MAGENTO_REDIS_FPC_PASSWORD
    #MAGENTO_REDIS_FPC_COMPRESS_DATA=1
    MAGENTO_REDIS_SES_SERVER=redis-ses
    MAGENTO_REDIS_SES_PORT=6381
    MAGENTO_REDIS_SES_DATABASE=0
    #MAGENTO_REDIS_SES_PASSWORD
    #MAGENTO_REDIS_SES_TIMEOUT
    #MAGENTO_REDIS_SES_PERSISTENT_ID
    #MAGENTO_REDIS_SES_COMPRESSION_THRESHOLD
    #MAGENTO_REDIS_SES_COMPRESSION_LIB
    #MAGENTO_REDIS_SES_LOG_LEVEL
    #MAGENTO_REDIS_SES_MAX_CONCURRENCY
    #MAGENTO_REDIS_SES_BREAK_AFTER_FRONTEND
    #MAGENTO_REDIS_SES_BREAK_AFTER_ADMINHTML
    #MAGENTO_REDIS_SES_FIRST_LIFETIME
    #MAGENTO_REDIS_SES_BOT_LIFETIME
    #MAGENTO_REDIS_SES_DISABLE_LOCKING
    #MAGENTO_REDIS_SES_MIN_LIFETIME
    #MAGENTO_REDIS_SES_MAX_LIFETIME

# Magento (optional, Varnish)
VCL_CONFIG=/data/varnish.vcl

MY installation command.

sudo docker exec -it 47fc7052a3fa  php bin/magento setup:install --base-url=https://m2.docker.com --base-url-secure=https://m2.docker.com --db-host=mysql --db-name=magento --db-user=magento --db-password=magento  --backend-frontname=admin --admin-firstname=Magento --admin-lastname=Admin --admin-email=dkmagento@gmail.com --admin-user=admin --admin-password=admin@123 --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1 --elasticsearch-host=localhost:9200 --elasticsearch-port=9200 

Here is curl test output.

curl -X GET "localhost:9200/_cat/nodes?v&pretty"
ip         heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.24.0.2           22          93   2    0.78    1.13     1.39 dilm      *      c6c5a3e48cfe

Any help will be appreciated.

0

In your .env file the elasticsearch host is http://elasticsearch:9200 while in your install-command elasticsearch host is set to localhost. Change the elasticsearch host in your Magento Configuration (Backend) to http://elasticsearch.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.