首页 > 解决方案 > 无法连接到 docker-compose 中主机名:6379 的 redis 实例

问题描述

我正在使用 docker-compose 启动一个 dotnet 核心应用程序和 redis。Redis 主机名设置为 docker 网络中使用的容器名称。服务堆栈中的 redis 连接管理器是使用连接字符串设置的。但是,它似乎总是默认回到 localhost:6379

这已经在 2 周前工作了,同样的 docker-compose.yaml,同样的代码用于 redis 客户端管理器。

Docker 版本 18.09.1,构建 4c52b90 - docker-compose 版本 1.23.2,构建 1110ad01

我已经按照 servicestack.redis 手册尝试了各种连接字符串选项。

代码:

container.Register<IRedisClientsManager>(c => new BasicRedisClientManager(Environment.GetEnvironmentVariable("CACHE_CONNECTION_STRING")));
                container.Register<ICacheClient>(c => c.Resolve<IRedisClientsManager>().GetCacheClient());

Console.WriteLine($"Cache details: Cache={Environment.GetEnvironmentVariable("CACHE")}, CONNECTION_STRING={Environment.GetEnvironmentVariable("CACHE_CONNECTION_STRING")}");

日志:

Connection string used:
dev-backend        | Cache details: Cache=Redis, CONNECTION_STRING=dev-redis:6379

Error:
dev-backend        | fail: ServiceStack.Redis.RedisNativeClient[0]
dev-backend        |       Could not connect to redis Instance at localhost:6379

知道为什么会这样吗?

标签: c#redisdocker-composeservicestackconnection-string

解决方案


推荐阅读