【发布时间】:2021-05-16 12:07:18
【问题描述】:
我正在尝试在开发环境中本地运行我的 Node 项目以及带有 docker-compose 的 Firestore 模拟器。
我的 Node 项目有一个 Dockerfile,如下所示:
WORKDIR /app
ADD package*.json ./
RUN npm install
ADD bin ./bin
CMD [ "npm", "run", "dev" ]
然后我有一个单独的 Dockerfile,名为 Dockerfile.firestore,用于对 Firestore 模拟器进行容器化。这个 Dockerfile 看起来像这样:
FROM node:alpine
RUN apk add openjdk11
RUN npm install -g firebase-tools
WORKDIR /app
CMD [ "firebase", "--project=xrechnung-app", "emulators:start", "--only", "firestore" ]
docker-compose.yml 的写法如下:
version: "3"
services:
api:
image: api
build:
context: api
dockerfile: Dockerfile.dev
depends_on:
- db
environment:
- PORT=3000
ports:
- 3000:3000
volumes:
- ./api/src:/app/src
db:
image: firestore
build:
context: api
dockerfile: Dockerfile.firestore
ports:
- 4000:4000
- 8080:8080
volumes:
- .cache/firebase/emulators/:/app/.cache/firebase/emulators/
我不确定最后两行,但我在 Google Cloud 文档中发现了一个提示,这可能会阻止多次下载模拟器。
当使用docker-compose up 旋转容器时,Node 项目运行没有问题,并且在 localhost:3000 上可用。模拟器也启动了。控制台记录它的运行。但我无法在规定的端口(4000 和 8080)上使用它
有没有人尝试过类似的事情?感谢您的帮助。
【问题讨论】:
标签: node.js firebase docker google-cloud-platform google-cloud-firestore