在 docker 容器中运行,端口 9005 可用于主机操作系统,当我运行时
firebase 服务 -p 9005
然后尝试从主机操作系统(windows)访问它
使用http://localhost:9005我得到一个空响应
在 docker 容器中运行,端口 9005 可用于主机操作系统,当我运行时
firebase 服务 -p 9005
然后尝试从主机操作系统(windows)访问它
使用http://localhost:9005我得到一个空响应
要强制 firebase serve 可见,您必须指定它以强制它绑定到地址 0.0.0.0 否则绑定默认为 localhost
所以你需要运行
firebase 服务 -p 9005 -o 0.0.0.0
确保使用 docker 命令行选项 -p 公开和发布 9005
对于您的主机是本地主机,例如 127.0.0.1,对于 docker 容器也是本地主机,也可能是 127.0.0.1。但是这些是不一样的,这是两个不同的东西!
您必须配置一个在 docker 容器中运行的进程以使用所有接口,这称为 0.0.0.0 这不是 localhost。
firebase serve -p 9005 -o 0.0.0.0
然后你必须公开端口,在上面的例子9005
中。见https://docs.docker.com/engine/reference/commandline/run/#publish-or-expose-port--p---expose
docker run --expose 9005 $CONTAINER $PARAMS
或在 Dockerfile 中使用类似的内容:
EXPOSE 9005/tcp
EXPOSE 9005/udp
见这里:https ://docs.docker.com/engine/reference/builder/#expose