SpringBoot应用程序容器无法连接到Redis容器

时间:2020-09-03 20:19:34

标签: spring-boot docker redis

我正在尝试使用docker在本地运行带有Redis的Spring Boot应用程序。该应用似乎无法与Redis容器连接。

我的Dockerfile

res.send(`
    <html>
        <body>
            <h1>Result = ${result}</h1>
        </body>
    </html>
`);

docker-compose.yml

FROM java:8
VOLUME /tmp
ADD target/test-*.jar test.jar
RUN bash -c 'touch /test.jar'
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/test.jar"]

应用程序属性

version: '2'
services:
  app:
    build: .
    ports:
      - "8080:8080"
    links:
      - "db:redis"
  db:
    image: "redis:alpine"
    hostname: redis
    ports:
      - "6379:6379"

当应用程序尝试连接到数据库时,它将引发

spring.redis.host=redis

我用来连接数据库的代码

Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool] with root cause
app_1  | 
app_1  | java.net.ConnectException: Connection refused (Connection refused)

任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

将应用程序服务中的docker-compose.yml文件链接更改为-links: - "db"。 在两个服务之间建立链接时,无需添加主机名。主机名将用于引用您的代码。在applications.properties文件中正确完成的操作。