Подключиться к redis из Cloud Run локально

Я создаю локальные облачные сервисы с плагином Cloud Code для Intellij (PyCharm), но локально развернутый сервис не может подключиться к экземпляру redis, запущенному в Docker:

      redis.exceptions.ConnectionError: Error 111 connecting to 127.0.0.1:6379. Connection refused.

Я могу подключиться к локально запущенному экземпляру Redis из оболочки python, это просто служба облачного запуска, работающая в minikube / docker, которая, похоже, не может подключиться к ней.

Есть идеи?

1 ответ

Решение

Если вы проверяете сеть Docker, используя:

      docker network list

Вы увидите сеть под названием cloud-run-dev-internal. Вам необходимо подключить контейнер Redis к этой сети. Для этого запустите эту команду (в этой инструкции предполагается, что имя вашего контейнера - some-redis):

      docker network connect cloud-run-dev-internal some-redis

Дважды проверьте, что ваш контейнер подключен к сети:

      docker network inspect cloud-run-dev-internal

Затем подключитесь к хосту Redis, используя имя контейнера:

      import redis
...

redis_host = os.environ.get('REDISHOST', 'some-redis')
redis_port = int(os.environ.get('REDISPORT', 6379))
redis_client = redis.StrictRedis(host=redis_host, port=redis_port)
Другие вопросы по тегам