Get it on Google Play
08-02-2019
 

Soporte Liferay: Incidencia ‘NoNodeAvailableException’ y como desplegar ElasticSearch dentro de un contenedor Docker

Soporte: Docker Easticsearch Liferay

Soporte: Docker Easticsearch Liferay

Veo por ahí mucha gente que tiene problemas a la hora de instalar ElasticSearch como contenedor Docker. Sobretodo, cuando lo hace sin mapear los puertos 9200 y 9300. El error acostumbra a se el siguiente:

“NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}…”

Que sepáis que el problema normalmente lo tiene ‘CORS’ que impide las peticiones que lleguen de distintos dominios.

Si queréis arrancar ElasticSearch como contenedor os recomiendo hacerlo creando una red solo para nuestra aplicación y luego arrancarlo de la siguiente manera:

# Creamos la red
sudo docker network create mired

# Arrancar ElasticSearch
sudo docker run \
-d \
--name elasticsearch  \
--net mired \
--network-alias elasticsearch  \
--restart always  \
-e discovery.type=single-node  \
-e cluster.name=docker-cluster  \
-e network.bind_host=0.0.0.0  \
-e http.host=0.0.0.0  \
-e transport.host=0.0.0.0  \
-e xpack.security.enabled=false  \
-e http.cors.enabled=true  \
-e http.cors.allow-origin=*  \
-e http.cors.allow-headers=X-Requested-With,Content-Type,Content-Length,X-User  \
-e path.repo=/usr/share/elasticsearch/data/repo  \
docker.elastic.co/elasticsearch/elasticsearch:6.6.0

En este caso, configuramos un alias de red para que el contenedor con Liferay(Que debe estar en la misma red) encuentre el contenedor por el nombre ‘elasticsearch’, configurar que acepte peticiones de cualquier ip, habilitar CORS, hacer que el contenedor arranque cuando se reinicie la máquina, etc.

Espero que os resulte útil, y ya sabéis, si os resulta útil compartir, comentar y dale a la manita arriba 😀 .

Si te ha servido, por favor comparte

Interesado en formación Liferay?

 

Leave a Reply