我正在使用基于Cloud Foundry的Swisscom的Application Cloud。我一直在尝试将Redis容器应用程序与Redis服务绑定在一起失败。
要复制:
从官方docker镜像中推送了一个裸应用:
cf push redis-client --docker-image rediscommander/redis-commander -k 1G -m 128M
将应用绑定到服务(我使用了网络管理员)
将适当的变量环境添加到您的redis命令容器中(这些值来自VCAP_SERVICE)
REDIS_HOST="kubernetes-service-node.service.consul"
REDIS_PORT="xxxxx"
REDIS_PASSWORD="xxxxx"
K8S_SIGTERM=1
您将在日志中收到以下错误,这会阻止该应用 从开始:
2018-08-29 23:40:51 [APP/PROC/WEB/0] ERR setUpConnection Redis error Error: getaddrinfo ENOTFOUND redis redis:44506
2018-08-29 23:40:51 [APP/PROC/WEB/0] ERR at errnoException (dns.js:50:10)
2018-08-29 23:40:51 [APP/PROC/WEB/0] ERR at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
在寻求帮助时,我意识到rediscommander / redis-commander映像是基于alpine的,并且没有封装bind-tools
。因此,我创建了cortexia/redis-commander图片来添加它们。
但是我仍然遇到相同的错误。可能是因为redis-commander映像已使用this script进行了加固,以减少攻击面,但是我不知道是否是这种情况,并且不应该对哪些工具进行“加固”。
欢迎任何帮助在应用程序云上运行redis-commander的帮助!