首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从docker运行firestore模拟器并保存数据

要在 Docker 中运行 Firestore 模拟器并保存数据,你可以按照以下步骤进行操作:

  1. 创建 Dockerfile:首先,创建一个 Dockerfile 来设置 Firestore 模拟器的环境。
  2. 运行 Firestore 模拟器:使用 Docker 启动 Firestore 模拟器。
  3. 保存数据:确保数据在容器重启后仍然存在。

1. 创建 Dockerfile

创建一个名为 Dockerfile 的文件,并添加以下内容:

代码语言:javascript
复制
FROM openjdk:8-jdk-alpine

# 设置工作目录
WORKDIR /usr/src/app

# 下载 Firestore 模拟器
RUN apk add --no-cache curl && \
    curl -o firestore-emulator-v1.13.1.jar https://storage.googleapis.com/firebase-preview-drop/emulator/cloud-firestore-emulator-v1.13.1.jar

# 暴露 Firestore 模拟器的默认端口
EXPOSE 8080

# 启动 Firestore 模拟器
CMD ["java", "-jar", "firestore-emulator-v1.13.1.jar", "--host=0.0.0.0", "--port=8080"]

2. 构建 Docker 镜像

在包含 Dockerfile 的目录中运行以下命令来构建 Docker 镜像:

代码语言:javascript
复制
docker build -t firestore-emulator .

3. 运行 Firestore 模拟器

运行以下命令来启动 Firestore 模拟器容器,并将数据目录挂载到主机文件系统,以便在容器重启后数据仍然存在:

代码语言:javascript
复制
docker run -d --name firestore-emulator -p 8080:8080 -v $(pwd)/firestore-data:/usr/src/app/data firestore-emulator

在这个命令中:

  • -d:以分离模式运行容器。
  • --name firestore-emulator:为容器指定名称。
  • -p 8080:8080:将主机的 8080 端口映射到容器的 8080 端口。
  • -v $(pwd)/firestore-data:/usr/src/app/data:将主机的 firestore-data 目录挂载到容器的 /usr/src/app/data 目录。

4. 连接到 Firestore 模拟器

在你的应用程序中,配置 Firestore 客户端以连接到模拟器。例如,在 Node.js 中:

代码语言:javascript
复制
const admin = require('firebase-admin');
const { Firestore } = require('@google-cloud/firestore');

// 初始化 Firebase Admin SDK
admin.initializeApp({
  projectId: 'your-project-id',
});

// 获取 Firestore 实例
const firestore = new Firestore();

// 配置 Firestore 客户端以连接到模拟器
firestore.settings({
  host: 'localhost:8080',
  ssl: false,
});

// 现在你可以使用 Firestore 客户端进行操作

5. 保存和恢复数据

为了确保数据在容器重启后仍然存在,你需要将数据目录挂载到主机文件系统(如上所示)。这样,数据将保存在主机的 firestore-data 目录中,即使容器被删除或重启,数据也不会丢失。

6. 备份和恢复数据

你可以使用 Firestore 模拟器的导出和导入功能来备份和恢复数据。

导出数据

在容器中运行以下命令来导出数据:

代码语言:javascript
复制
docker exec firestore-emulator java -jar firestore-emulator-v1.13.1.jar export /usr/src/app/data/export

导入数据

在容器中运行以下命令来导入数据:

代码语言:javascript
复制
docker exec firestore-emulator java -jar firestore-emulator-v1.13.1.jar import /usr/src/app/data/export
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券