从本地云 运行 模拟器连接到 Docker (Redis) 中的容器 运行

Connect to a container running in Docker (Redis) from Cloud Run Emulator locally

我正在使用 Cloud Code 插件为 Intellij (PyCharm) 创建本地云 运行 服务,但是本地部署的服务无法连接到 运行ning 中的 运行ning =24=]:

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

我可以从 python shell 连接到本地 运行ning redis 实例,它只是云 运行 服务 运行ning 在 minikube/docker 似乎无法连接到它。

有什么想法吗?

编辑,因为人们建议完全不相关 posts - 本地 运行ning Cloud 运行 实例使用 Docker 和 Minikube 到 运行 ,并由 Cloud Code for Intellij 自动配置。我怀疑 Cloud Code for intellij 将 Cloud 运行 实例置于无法访问 MacOS 本地主机上的服务 运行ning(但可以访问 Internet)的环境中,这就是为什么我在 post。请将建议限制为考虑到这些项目的建议。

如果您检查 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)