Redis getaddrinfo не работает в контейнере
Поставил контейнер php7.3-fpm, в него добавил redis через pecl. Сам php обрабатывает любые запросы нормально, а вот Redis, и, я подозреваю, Zend в принципе, не хочет даже запрашивать никакие днс (снял дамп внутри и снаружи контейнера).
Вот такая ошибка:
Warning: Redis::connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/script.php on line 7
Fatal error: Uncaught RedisException: php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/script.php:7 Stack trace: #0 /var/www/script.php(7): Redis->connect('redis1:6391') #1 /var/www/login.php(6): include('/var/www/script...') #2 {main} thrown in /var/www/script.php on line 7
В целом мне днсы не нужны - я хотел обращаться к redis по ip, но он и на ip ругается, а запросы не делает. strace в докере не умею, но судя по всему, нужны какие-то библиотеки. Подскажите, куда копать.
Вот инфа из phpinfo:
Zend Extension 320180731
Zend Extension Build API320180731,NTS
PHP API 20180731
PHP Extension 20180731
Redis Version 5.3.1
Redis Sentinel Version 0.1
redis.arrays.algorithm no value no value
redis.arrays.auth no value no value
redis.arrays.autorehash 0 0
redis.arrays.connecttimeout 0 0
redis.arrays.consistent 0 0
redis.arrays.distributor no value no value
redis.arrays.functions no value no value
redis.arrays.hosts no value no value
redis.arrays.index 0 0
redis.arrays.lazyconnect 0 0
redis.arrays.names no value no value
redis.arrays.pconnect 0 0
redis.arrays.previous no value no value
redis.arrays.readtimeout 0 0
redis.arrays.retryinterval 0 0
redis.clusters.auth no value no value
redis.clusters.cache_slots 0 0
redis.clusters.persistent 0 0
redis.clusters.read_timeout 0 0
redis.clusters.seeds no value no value
redis.clusters.timeout 0 0
redis.pconnect.connection_limit 0 0
redis.pconnect.echo_check_liveness 1 1
redis.pconnect.pool_pattern no value no value
redis.pconnect.pooling_enabled 1 1
redis.session.lock_expire 0 0
redis.session.lock_retries 10 10
redis.session.lock_wait_time 2000 2000
redis.session.locking_enabled 0 0
Версия докера:
Docker version 19.03.8, build afacb8b7f0
Контейнер внутри Gentoo
Ответы (1 шт):
Автор решения: qzaki
→ Ссылка
дело было не в бобине: в новой версии нельзя вот так:
Redis->connect('redis1:6391')
нужно отдельно писать хост и порт:
Redis->connect('redis1',6391)