B S*_*ven 13 redis docker docker-compose
这docker-compose.yml似乎工作正常:
version: '3'
services:
web:
image: web-app
command: bundle exec rackup
ports:
- "9292:9292"
links:
- redis
redis:
image: redis
Run Code Online (Sandbox Code Playgroud)
命令:
docker build -t web-app .; docker-compose up
Run Code Online (Sandbox Code Playgroud)
Web App期待REDIS_URL配置.Web App Dockerfile:
ENV REDIS_URL redis:6379
Run Code Online (Sandbox Code Playgroud)
似乎Web App无法连接到Redis:
Redis::CannotConnectError - Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED):
Run Code Online (Sandbox Code Playgroud)
那么,Web应用程序的Redis URL是什么?
我需要暴露Redis端口(6379)吗?
编辑:
感谢@Andy Shinn,我看到redis url应该是redis://6379.
现在我明白了Errno::EINVAL - Invalid argument - connect(2) for 0.0.24.235:6379.这可能与Redis v 3.2.8有关.我会尝试另一个版本,看看它是否有效.
编辑#2:
3.2.8适用于我本地计算机上的应用程序,因此不是问题.
B S*_*ven 20
问题是redis将在Dockerfile中插入的"变量".
ENV REDIS_URL redis:6379
Run Code Online (Sandbox Code Playgroud)
但是Redis URL应该以文字 开头redis.
所以,修复程序正在更新docker compose:
redis_db:
image: redis:3.2.8
Run Code Online (Sandbox Code Playgroud)
所需的配置是:
REDIS_URL=redis://redis_db:6379
Run Code Online (Sandbox Code Playgroud)
感谢BMitch和Andy Shinn帮助我解决这个问题.
| 归档时间: |
|
| 查看次数: |
19652 次 |
| 最近记录: |