Я переместил приложение Rails (локальное dev-устройство) в Docker-Compose. Все работает, за исключением того, что экземпляр Worker Rails (пакетный) не может подключиться к Redis.Docker-compose - Redis at 0.0.0.0 вместо 127.0.0.1
Completed 500 Internal Server Error in 40ms (ActiveRecord: 2.3ms)
Redis::CannotConnectError (Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED)):
В моей Докер-compose.yml
redis:
image: redis
ports:
- "6379:6379"
batch:
build: .
command: bundle exec rake environment resque:work QUEUE=*
volumes:
- .:/app
links:
- db
- redis
environment:
- REDIS_URL=redis://redis:6379
Я думаю, что экземпляр Redis доступен через IP хоста Докер.
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:2376 v1.10.0
Доступ через 0.0.0.0 не работает
$ curl 0.0.0.0:6379
curl: (7) Failed to connect to 0.0.0.0 port 6379: Connection refused
Доступ через докер-машины IP я думаю работы:
$ curl http://192.168.99.100:6379
-ERR wrong number of arguments for 'get' command
-ERR unknown command 'Host:'
EDIT
После установки redis-cli в экземпляре экземпляра, я смог попасть на сервер redis, используя имя «redis». Я думаю, что проблема, возможно, в самой конфигурации Rails.
Эти варианты не помогают: Redis-сервер --bind 0.0.0.0 – ardochhigh
Сначала вы не должны ожидать зависания или подключения к любому серверу через 0.0.0.0, поскольку это не то, как работает TCP. Этот адрес означает «any» и работает только при привязке не к подключению. Во-вторых, вы не хотите завивать Redis, потому что это не сервер http. –
Спасибо Real Bill, так как я могу устранить эти проблемы с подключением, если не с завитом? Cheers – ardochhigh