Это почти похоже на проблему, с которой я столкнулся несколько дней назад, и также упоминал в этом ТАКом вопросе, но позвольте мне объяснить здесь, поскольку в вашем случае использования есть некоторые подобные предостережения, которые я решил.
С помощью docker проверить идентификатор контейнера проверил сеть, используемую моим контейнеромasticsearch docker, часть которого выглядит следующим образом:
"Networks": {
"docker-files_default": {->this is network name used by elasticsearch docker.
"IPAMConfig": null,
"Links": null,
"Aliases": [
"elasticsearch",
"de78c684ae60"
],
Теперь определен мой docker - создайте для моего приложения, как показано ниже:
version: '3'
services:
web:
build: .
ports:
- "8080:8080"
volumes:
- .:/code
networks: --> see it uses the network section and below which defines the same network used by elastic docker
- docker-files_default
networks: --> note this section as well, you need to add this as well.
docker-files_default:
external: true
После этого, так как оба контейнера docker используют одну и ту же сеть, вы можете использовать имя вашего контейнераasticsearch docker, которое является asticsearch, как показано в вашем elasti c docker -compose.yml. Так что ниже конфигурации пружины для elasti c будет:
spring.data.elasticsearch.cluster-nodes=elasticsearch:9200