Я нашел решение.Это может помочь, если кто-то пытается сделать то же самое.
Как я уже сказал в своем комментарии к @ibexit, я использую два док-кластеризованных ES-кластера и два отдельных портала Liferay (не в контейнерах) на одном и том жемашина (режим разработки).
Я изменил транспортный адрес в конфигурационном файле Liferay OSGi, так как он должен соответствовать транспортному TCP-порту, на котором работает ES:
transportAddresses="127.0.0.1:9301"
logExceptionsOnly="false"
operationMode="REMOTE"
indexNamePrefix="myprefix-"
clusterName="liferay-cluster"
Я также добавил свойство network.publish_host=127.0.0.1
в моем ESкластеры (без этого свойства Liferay не смог обнаружить узлы ES)
Вот мой docker-compose.yml :
Использование ES 6.1.4
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:6.1.4
container_name: es01
environment:
- node.name=es01
- cluster.name=liferay-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- transport.tcp.port=9301
- network.publish_host=127.0.0.1
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata01:/usr/share/elasticsearch/data
ports:
- "9201:9200"
- "9301:9301"
networks:
- esnet
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:6.1.4
container_name: es02
environment:
- node.name=es02
- cluster.name=liferay-cluster2
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- transport.tcp.port=9302
- network.publish_host=127.0.0.1
ulimits:
memlock:
soft: -1
hard: -1
ports:
- "9202:9200"
- "9302:9302"
volumes:
- esdata02:/usr/share/elasticsearch/data
networks:
- esnet
volumes:
esdata01:
driver: local
esdata02:
driver: local
networks:
esnet:
network.publish_host
сделали свое дело!