我有一个小应用程序,我使用redis进行缓存和Spring Boot。应用程序在本地成功运行,但当我尝试将其停靠时,我得到了连接拒绝异常。
这是我的docker-compose.yml文件:
version: '3.5'
services:
my-application:
image: my-application:latest
container_name: my-application
ports:
- 8080:8080
hostname: my-application
redis:
image: redis
command: [ "redis-server", "--protected-mode", "no" ]
volumes:
- ./data:/data
ports:
- 6379:6379 Dockerfile:
FROM openjdk:7
VOLUME /tmp
ADD my-application-0.0.1.jar my-application-0.0.1.jar
EXPOSE 8080
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "my-application-0.0.1.jar"]当我检查docker console时,我看到redis以独立模式启动。
我错过了什么?
谢谢
发布于 2018-08-14 04:49:27
您必须设置:
server.address=0.0.0.0在你的application.properties里。如果您应用程序正在侦听容器中的127.0.0.1,您将无法从主机访问它。
发布于 2019-11-17 18:48:58
您需要在docker合成文件中将redis主机更改为redis配置的名称,在本例中为- redis
手动配置(redis或jedis) redisStandaloneConfiguration.setHostName("redis");中的主机更改属性文件spring.redis.host=redis
我希望这对某些人有用!:)
发布于 2020-11-30 04:29:12
我遇到了同样的问题,并用(docker-compose.yml)修复了这个问题。
cache:
image: redis
...
ports:
- 6379:6379 然后在application.properties spring.redis.host=cache中
最终
@Value("${spring.redis.host}")
String redisHost
...
redisStandaloneConfiguration.setHostName(redisHost);我认为,在docker网络中,与image同名的服务名称会导致问题,最终导致docker无法创建到redis主机的连接。
https://stackoverflow.com/questions/51827759
复制相似问题