VS Code中本地Cloud Run容器访问Firebase Storage模拟器连接被拒问题
问题解决方案
关于Cloud Run模拟器添加--net host选项的可行性
Cloud Run本地模拟器不支持直接为内部运行的Docker容器添加--net host参数,因为模拟器的运行逻辑是封装好的,用户无法直接修改底层Docker的网络配置选项。
替代解决方案
使用宿主机内网IP替代localhost
- 查找宿主机的内网IP:Linux/macOS执行
ifconfig或ip addr,Windows执行ipconfig,找到类似192.168.x.x的地址 - 修改Python代码中的地址,将
localhost:9199替换为http://[宿主机内网IP]:9199 - 确保Firebase Storage模拟器绑定到
0.0.0.0而非仅localhost,启动时添加参数:firebase emulators:start --storage-port 9199 --host 0.0.0.0
- 查找宿主机的内网IP:Linux/macOS执行
Docker Desktop环境使用特殊DNS名称
直接将代码中的localhost替换为host.docker.internal,即访问地址改为http://host.docker.internal:9199,这个DNS名称会自动解析到宿主机IP,无需手动查找。自定义Docker网络桥接
- 创建自定义Docker网络:
docker network create local-emulator-network - 启动Firebase Storage模拟器时加入该网络:
firebase emulators:start --storage-port 9199 --network local-emulator-network - 在VS Code的Cloud Run扩展设置中,配置模拟器使用同一个自定义网络
- 代码中使用宿主机在该网络下的IP,或直接用
host.docker.internal(Docker Desktop环境)访问模拟器
- 创建自定义Docker网络:
内容的提问来源于stack exchange,提问作者DCoder
相关产品推荐
相关产品推荐

