Как подключиться к Redis с php через docker?

Использую docker-compose, redis подключаю так
redis:
      restart: always
      image: redis
      depends_on:
        - vesta

В php redis устанавливал через Dockerfile так
RUN pecl install -o -f redis \
&&  rm -rf /tmp/pear \
&&  docker-php-ext-enable redis

вроде бы все установилось ровно. Контейнер редиса запускается, phpinfo() показывает, что редис установлен.
Но в попытках подключится к редису через php
$redis = new Redis();
$redis->connect('127.0.0.1');
echo $redis->ping();

выдает ошибку
Fatal error: Uncaught RedisException: Redis server went away

Пробовал передавать разные хосты: 192.168.0.1,127.0.0.1,0.0.0.0,redis - всегда возвращается это исключение. Что я делаю не так?
  • Вопрос задан
  • 498 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Что у вас docker-compose ps показывает - все ли контейнеры запущены?

192.168.0.1
Это ip хоста, там Редиса нет.

127.0.0.1
Это локалхост, там Редиса нет.

0.0.0.0
Это вообще невалидный ip.

redis
А вот по имени он должен бы работать. Вам нужно выяснить имя сети и сделать docker network inspect %name%, чтобы увидеть ip Редиса - с ним должно работать точно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы