You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker镜像中Firebase登录异常:Localhost:9005连接被拒绝

解决Docker环境下Firebase Tools登录的localhost:9005连接拒绝问题

我之前也碰到过Docker环境下Firebase Tools登录的这个坑,给你几个排查和解决的思路:

1. 先搞定Docker端口映射

这个问题最常见的原因就是容器的端口没和宿主机打通。你运行容器的时候,一定要把容器内的9005端口映射到宿主机的对应端口,启动命令里必须加上:

-p 9005:9005

举个完整的启动例子:

docker run -it -p 9005:9005 -v $(pwd):/app your-firebase-image

这里的-p 9005:9005就是把宿主机的9005端口和容器内的9005端口做绑定,不然宿主机根本访问不到容器里的服务。

2. 修改Firebase登录的监听地址

Firebase Tools默认在容器内启动的登录服务只绑定127.0.0.1(容器自己的本地回环),宿主机肯定访问不了。你需要强制让它监听容器的所有网络接口,执行登录命令时加上--host 0.0.0.0参数:

firebase login --host 0.0.0.0

这样Firebase的登录服务就会绑定到容器的0.0.0.0地址,宿主机访问localhost:9005就能正常连接了。

3. 非交互场景的替代方案(彻底绕开浏览器登录)

如果你的场景是完全自动化的非交互环境,其实可以不用浏览器登录,直接用Firebase服务账号密钥来认证:

  • 从Firebase控制台下载你的项目服务账号JSON密钥文件
  • 把密钥文件挂载到Docker容器里,比如:
docker run -v /本地路径/your-service-account.json:/app/service-account.json your-firebase-image
  • 在容器内用密钥完成认证:
# 方式1:直接用密钥生成登录token
firebase login:ci --token "$(cat /app/service-account.json)"
# 方式2:设置环境变量让Firebase自动读取密钥
export GOOGLE_APPLICATION_CREDENTIALS="/app/service-account.json"

这种方式完全不需要浏览器交互,适合CI/CD或者自动化脚本场景。

4. 验证容器内服务状态

如果前面的步骤都做了还是不行,你可以进到容器内部检查9005端口是否真的在监听:

docker exec -it 你的容器ID/名称 bash
# 执行端口监听检查
netstat -tulpn | grep 9005

如果能看到0.0.0.0:9005的监听记录,说明服务已经正常启动,那问题可能出在宿主机的防火墙设置(比如宿主机防火墙挡住了9005端口)。


内容的提问来源于stack exchange,提问作者LRS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:27:51