如何使用Docker Compose连接到Redis容器?
这个docker-compose.yml
似乎工作正常:
version: '3' services: web: image: web-app command: bundle exec rackup ports: - "9292:9292" links: - redis redis: image: redis
命令:
docker build -t web-app .; docker-compose up
Web应用程序正在等待REDIS_URLconfiguration。 Web应用程序Dockerfile:
ENV REDIS_URL redis:6379
看起来Web应用程序无法连接到Redis:
Redis::CannotConnectError - Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED):
那么,Web App的Redis URL是什么?
我需要暴露Redis端口(6379)吗?
编辑:
感谢@Andy Shinn,我看到redisurl应该是redis://6379
。
现在我得到Errno::EINVAL - Invalid argument - connect(2) for 0.0.24.235:6379
。 这可能与Redis v 3.2.8有关。 我会尝试另一个版本,看看它是否工作。
编辑#2:
3.2.8在我的本地机器上正常工作,所以这不是问题。
问题是redis
是“variables”,将被插入到Dockerfile中。
ENV REDIS_URL redis:6379
但是,Redis URL应该以字面 redis
开头。
所以,解决方法是更新泊坞窗撰写:
redis_db: image: redis:3.2.8
所需的configuration是:
REDIS_URL=redis://redis_db:6379
感谢BMitch和Andy Shinn帮我解决这个问题。