Redis и docker-compose connect 127.0.0.1:6379 - PullRequest
0 голосов
/ 10 мая 2018

У меня есть существующее приложение узла, которое подключается к redis на 127.0.0.1:6379. Я не могу изменить это.

Я понимаю, что с помощью docker compose он соединяет две службы redis и node и позволяет им подключаться с использованием redis имени хоста, однако я не могу изменить это.

Как сделать так, чтобы redis был доступен из приложения node на хосте и порту 127.0.0.1:6379?

Вот мой docker-compose.yml файл:

version: '3'

services:
  redis:
    image: redis
    hostname: "127.0.0.1"
  redis-cli:
    image: redis
    links:
      - redis
    command: redis-cli -h 127.0.0.1

Вот вывод:

$ docker-compose run redis-cli
Starting install_redis_1 ... done
Could not connect to Redis at 127.0.0.1:6379: Connection refused
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>

1 Ответ

0 голосов
/ 10 мая 2018

Вы можете использовать network_mode: host в обоих контейнерах, чтобы redis выставил свои 6379 на localhost и сделал localhost доступным для redis-cli:

version: '3'

services:
  redis:
    image: redis
    network_mode: host
  redis-cli:
    depends_on:
      - redis
    image: redis
    network_mode: host
    command: redis-cli -h 127.0.0.1 ping

И запустить его:

> docker-compose run redis-cli
Starting dockerredis_redis_1 ... done
PONG
...