我的Sping Boot 后端有这个Dockerfile:
FROM eclipse-temurin:17-jdk-alpine
ARG JAR_FILE=target/*.jar
COPY ./target/elasticSpring-0.0.1-SNAPSHOT.jar elasticSpring.jar
ENTRYPOINT [ "java","-jar","/elasticSpring.jar" ]
这是我的网站application.properties
spring.data.elasticsearch.cluster-name=http://localhost:9200
这是我的docker-compose.yml文件:
version: '1'
services:
es:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.12
container_name: es
ports:
- 9200:9200
- 9300:9300
environment:
- bootstrap.memory_lock=true
- xpack.security.enabled=false
- discovery.type=single-node
networks:
- mynet
springboot-app:
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:8080"
depends_on:
- es
environment:
- SPRING_DATA_ELASTICSEARCH_CLUSTER_NODES=es:9200
networks:
- mynet
networks:
mynet:
driver: bridge
据我所知,docker-compose环境覆盖了application.properties,所以我不认为这是问题所在。但我得到了“造成原因:org.springframework.dao.DataAccessResourceFailureException:连接被拒绝”和连接错误。请帮助。
1条答案
按热度按时间but5z9lq1#
在浏览了所有的互联网后,我终于找到了解决方案,原来“spring.elasticsearch.uris”的默认值是localhost:9200,我的容器一直在尝试连接到不存在的主机沿着。我在docker compose中添加了“SPRING_ELASTICHALO_URIS=es:9200”到我的后端环境中,现在它工作得很好。