繁体   English   中英

Firebase docker 容器中的身份验证模拟器 UI 在本地主机上不起作用

[英]Firebase Authentication Emulator UI in docker container doesn't work on localhost

我有这个 dockerfile:

FROM node:16

ADD . /src
WORKDIR /src
# Install OpenJDK-11
RUN echo 'deb http://ftp.debian.org/debian stretch-backports main' | tee /etc/apt/sources.list.d/stretch-backports.list

RUN apt-get update && \
    apt-get install -y openjdk-11-jre-headless && \
    apt-get clean;
RUN npm i -g firebase-tools
RUN firebase --version
EXPOSE 9099 4000

我有这个 firebase.json:

{
  "emulators": {
    "auth": {
      "port": 9099
    },
    "ui": {
      "enabled": true,
      "port": 4000
    }
  }
}

我有这个 docker-compose 文件:

version: "3.0"
services:
  firebase:
    build:  
      context: .
      dockerfile: Dockerfile.firebase-emulator
    volumes:
      - ./fb-data:/src
    ports:
      - "9099:9099"
      - "4000:4000"
    stdin_open: true
    tty: true

然后我运行docker exec -it <container-id> sh并开始在里面运行这些命令:

  1. firebase login --no-localhost
  2. firebase emulators:start --project demo-test

结果是这样的:

在此处输入图像描述

当我在浏览器中访问 http://localhost:4000/auth 结果是:

在此处输入图像描述

是不是暴露的docker端口有问题?

感谢您的帮助!

经过更多挖掘,为了使这项工作正常进行,firebase.json 需要具有“主机”属性:

{
  "emulators": {
    "auth": {
      "port": 9099,
      "host": "0.0.0.0"
    },
    "ui": {
      "enabled": true,
      "host": "0.0.0.0",
      "port": 4000
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM