Запуск функций firebase внутри док-контейнера для целей разработки - PullRequest
0 голосов
/ 30 июня 2018

Я хотел бы разработать и протестировать облачные функции Google Firebase в Docker-контейнере. Вот мой 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 functions --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.

У кого-нибудь есть подсказка?

1 Ответ

0 голосов
/ 17 октября 2018

Я только что решил ту же проблему, исправленную с помощью следующей команды firebase serve --only functions -o 0.0.0.0. Используя эту опцию, вы по-прежнему можете получить доступ с локального хоста на вашем хост-компьютере.

Вы также можете сопоставить вашу папку .config, что-то вроде -v "${HOME}/.config":"/root/.config", чтобы сохранить вашу учетную запись, потому что там хранится ваша сессия Firebase.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...