node.js – 在docker容器内运行firebase函数以进行开发

我想在docker容器中开发和测试google firebase云功能.这是我的Dockerfile:

FROM node:6.11.5
WORKDIR /workspace

RUN npm install -g firebase-tools eslint babel-cli

ADD functions-source/package*.json functions-source/
RUN npm --prefix ./functions-source install

ADD ./package*.json ./
RUN npm install
ENV GOOGLE_APPLICATION_CREDENTIALS /workspace/keys/default-appengine-service-key.json
EXPOSE 9005 5000

我使用此命令构建上面的图像

docker build --tag dewey-nguyen:latest .

然后使用以下命令启动docker容器:

docker run -p 9005:9005 -p 5000:5000 -o 0.0.0.0 -v `pwd`:/workspace -it dewey-nguyen:latest /bin/bash

当我进入容器时,我使用以下命令登录firebase:

firebase login

我能够从主机登录到浏览器中的firebase(http:// localhost:9005 / …).

当我在容器内运行firebase serve –only函数–debug时,我看到所有函数都是绿色的:

✔  functions: auth: http://localhost:5000/dewey-nguyen/us-central1/auth
✔  functions: myInformedDelivery: http://localhost:5000/dewey-nguyen/us-central1/myInformedDelivery
✔  functions: authCallback: http://localhost:5000/dewey-nguyen/us-central1/authCallback
✔  functions: checkInformedDeliveryEmails: http://localhost:5000/dewey-nguyen/us-central1/checkInformedDeliveryEmails

但是我无法从主机浏览器访问http:// localhost:5000 / dewey-nguyen / us-central1 / auth,并返回ERR_EMPTY_RESPONSE错误.

有人有线索吗?

最佳答案
我刚刚在这里遇到了同样的问题,使用以下命令修复了firebase serve –only functions -o 0.0.0.0.
使用此选项,您仍可以通过主机上的localhost访问.

您还可以映射.config文件夹,例如-v“${HOME} /.config”:“/ root / .config”以保留您的记录帐户,因为您的firebase会话存储在那里.

转载注明原文:node.js – 在docker容器内运行firebase函数以进行开发 - 代码日志