首页
学习
活动
专区
工具
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
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Docker 入门:如何打包、部署运行你的应用

对于那些渴望在容器化的世界里迅速起步的朋友们,我今天将为你们揭秘Docker的魔法✨。通过这篇文章,你将明白如何使用Docker打包、部署和运行应用。...如果你正在搜索如何有效使用容器技术的词条,那么你来对地方了! 引言 随着应用开发和部署的复杂性不断增加,容器化已经成为解决方案的首选。...Docker简介 Docker是一个开源的应用容器引擎,允许开发者将应用及其依赖打包到一个容器中,确保它在任何环境中都能以相同的方式运行。 2. 如何打包你的应用?...Docker的其他神奇之处 除了基本的打包和运行功能,Docker还有其他一些强大的特性,如Docker Compose用于多容器应用、Docker Swarm用于容器编排等。...总结 Docker为应用开发者提供了一个无缝、简洁且高效的方式来打包、部署和运行应用。随着对容器技术的进一步探索,你会发现更多Docker的强大功能。

2.8K10

如何使用Docker部署Apache+Superset数据平台远程访问?

通过Superset,用户可以轻松地海量数据中提取有价值的信息,帮助企业做出更加明智的决策。另外,团队协作进行数据分析,可以结合国内流行的内网穿透工具实现公网的实时远程访问数据。 1....注意:这里hello-world镜像会仓库pull,如果没网,需要自己去dockerhub下载这个镜像。...1.2 克隆superset代码到本地使用docker compose启动 这里不用git clone命令,直接下载zip包再解压即可 浏览器打开https://github.com/apache/...下载完成后,将下载的文件解压,双击其中的.msi文件,就能自动执行cpolar的安装程序,我们只要一路Next,就能完成安装。...由于cpolar会为每个用户创建独立的数据隧道,辅以用户密码和token码保证数据安全,因此我们在使用cpolar之前,需要进行用户注册。

92430

如何在CentOS使用Docker运行Nacos容器实现无公网IP远程访问UI界面

下面开始介绍在Docker运行Nacos安装Cpolar 工具实现远程访问. 1....Docker 运行Nacos 执行Docker一键运行命令,下面是对应的命令参数解释,当然,不一定是docker部署,本例为了方便演示远程访问Nacos UI界面,所以采用docker快速部署方式. docker...nacos/nacos-server:2.0.3:基于 nacos/nacos-server 镜像的 2.0.3 版本启动容器,可以根据需要选择其他适合的版本 运行后,输入docker ps 即可看到我们运行的...和默认密码nacos,即可登录成功,本地部署运行就完成了,下面我们安装Cpolar工具,实现远程访问 3....Linux安装Cpolar 上面在本地Docker中成功部署了Nacos服务,局域网访问成功,下面我们在Linux安装Cpolar内网穿透工具,通过cpolar 转发本地端口映射的http公网地址,我们可以很容易实现远程访问

7500

如何丝滑般将 Kubernetes 容器运行 Docker 切换成 Containerd

前面我们安装的集群默认使用的是 Docker 作为容器运行时,那么应该如何将容器运行 Docker 切换到 containerd 呢?...我们当然可以直接使用 ctr 命令来直接管理镜像或容器资源,但是我们在使用过程中明显可以感觉到该工具没有 docker CLI 方便,使用便捷性和功能性上考虑,我们更推荐使用 crictl 作为管理工具...接下来我们就先简单介绍下如何使用 crictl 工具来提升管理容器运行时的效率。...当然,也可以直接使用 ctr run 命令来创建运行容器。...当使用 Docker 作为 Kubernetes 容器运行时的时候,容器日志的落盘是由 Docker 来完成的,日志被保存在类似 /var/lib/docker/containers/<CONTAINER

3.6K11

如何丝滑般将 Kubernetes 容器运行 Docker 切换成 Containerd

前面我们安装的集群默认使用的是 Docker 作为容器运行时,那么应该如何将容器运行 Docker 切换到 containerd 呢?...我们当然可以直接使用 ctr 命令来直接管理镜像或容器资源,但是我们在使用过程中明显可以感觉到该工具没有 docker CLI 方便,使用便捷性和功能性上考虑,我们更推荐使用 crictl 作为管理工具...接下来我们就先简单介绍下如何使用 crictl 工具来提升管理容器运行时的效率。...当然,也可以直接使用 ctr run 命令来创建运行容器。...当使用 Docker 作为 Kubernetes 容器运行时的时候,容器日志的落盘是由 Docker 来完成的,日志被保存在类似 /var/lib/docker/containers/<CONTAINER

91930

如何使用 Docker 来将 Go Web 项目容器化,实现在不同环境中快速部署和运行

本文将介绍如何使用 Docker 来将 Go Web 项目容器化,实现在不同环境中快速部署和运行。简介Go 是一门高效、现代化、快速增长的编程语言,非常适合构建 Web 应用程序。...运行 go mod download 以下载项目依赖包,通过 go build 构建了我们的 Go Web 项目二进制文件 myapp。...首先需要在 Docker Hub 上注册一个账号,创建一个名为 myapp 的 repository docker login docker tag myapp-image <your-docker-username...总结在本文中,我们介绍了如何使用 Docker 镜像来部署 Go Web 项目。...此外,还讨论了如何Docker 镜像部署到云端,以便生产环境中使用。

73030

如何用TensorFlow和Swift写个App识别霉霉?

运行如下来自 tensorflow/models/research 目录的命令,输入如下标志(运行两次,一次用于训练数据,一次用于测试数据): python convert_labels_to_tfrecords.py...注意,你需要从本地克隆 tensorflow/models/research,该目录中运行训练脚本。...在我的 train/bucket 中,我可以看到训练过程的几个点中保存出了检查点文件: ? 检查点文件的第一行会告诉我们最新的检查点路径——我会本地在检查点中下载这3个文件。...客户端会将照片上传至 Cloud Storage,它会触发一个用 Node.js 提出预测请求的 Firebase 函数,并将结果预测照片和数据保存至 Cloud Storage 和 Firestore...然后我将添加了边框的新照片保存至 Cloud Storage,写出照片到 Cloud Firestore 的文件路径,这样我就能读取路径,在 iOS 应用中下载新照片(带有识别框): const admin

12.1K10

初具雏形到平稳运行,大数据平台如何在互联网行业发展?

在上市之前,公司的数据,无论是流量数据还是财务产品数据都需要经过非常严格的审计。为此,我们开始整理数据,做数据报表,花费一年多的时间做数据整理、数据规范,慢慢的大数据的平台有了雏形。...后来公司上市之后,数据运营的重点反映过去和现在的状况转变成指导业务、管理业绩、支持销售。...这个过程的好处是开发成本低,投入成本低,技术架构简单,可以非常快速的在公司内部运行起来。 但是这样的方式随着业务系统的增多,逐渐开始不适用。...然后是数据质量管理,包括确保数据的准确性,为保证数据的及时性还建立了一个运行和管理规范。这四块结合起来以保证平台的平稳运行。 大数据可视化 数据可视化是这个平台最后的一步也是应用范围最广的一步。...这一块,无论最初的传统数据仓库方式还是现在的大数据平台,我们都选择了帆软报表。 优势如下: 类EXCEL设计风格:操作界面大大降低了学习成本。

959100

【干货】手把手教你用苹果Core ML和Swift开发人脸目标识别APP

训练一个对象识别模型需要大量时间和大量的数据。对象检测中最牛的部分是它支持五种预训练的迁移学习模型。转移学习迁移学习是如何工作的?...要使用我的脚本,您需要安装tensorflow / models,tensorflow / models / research目录运行脚本,参数传递如下(运行两次:一次用于训练数据,一次用于测试数据)...Swift客户端将图像上传到云存储,这会触发Firebase,在Node.js中发出预测请求,并将生成的预测图像和数据保存到云存储和Firestore中。...将带有新框的图像保存到云存储,然后将图像的文件路径写入Cloud Firestore,以便在iOS应用程序中读取路径下载新图像(使用矩形): ? ?...在我的函数中,我向Firestore写预测元数据

14.7K60

使用全新 Android 模拟器工具进行持续测试

为了更好地支持这些用例,我们开源了 Android Emulator Container Script,围绕以下两个痛点改进了开发体验: 可部署性: 查找运行所需版本的 Android 模拟器。...开发者该如何获得模拟器和系统镜像文件?需要什么驱动程序?如何打开或者关闭 CPU 或 GPU 加速?等等等等。...有关如何创建和部署 Android 模拟器镜像的更多详细信息,请参阅文档里的 README 文件。 可调试性 当模拟器正在运行一个测试而且测试失败时,您可能难以介入正在运行的测试环境诊断错误。...诊断通常需要与虚拟设备直接交互,为此我们提供了两种直接互动的机制: ADB 远程流 对于 ADB,通过将特定端口 Docker 转发到主机,我们支持运行所有命令 (例如 logcat 和 shell)...当前使用的端口为 5555,我们需要收集更多反馈,如何最好地在不同容器间分配端口进行更深入的研究。

2.2K30

用 awaitasync 正确链接 Javascript 中的多个函数

然后我们需要 async 函数 getEmailOfCourseWithCourseId() Firestore获取课程的电子邮件地址。...我们不知道 Firestore 获取内容需要多长时间,因此它是 async 的,我们需要运行接下来的两个函数返回(或以 promise 解析)courseEmail 。...接下来的两个函数 saveToCloudFirestore() 和 sendEmailInSendgrid(),不能在 getEmailOfCourseWithCourseId() 之前运行返回 courseEmail...最后,在运行 saveToCloudFirestore() 和 sendEmailInSendgrid() 返回它们的值之前,不能发送 res.send(),否则我们的整个云函数将在工作完成之前中断。...为此,我们将 saveToCloudFireStore() 和 sendEmailInSendgrid() 响应(它们返回的内容)保存到变量中,其唯一目的是标记上述函数何时完成。

6.3K30

持续集成环境下的 Android 模拟器

Android 模拟器Docker 预构建 现在,借助我们提供的预构建 Android 模拟器容器,在持续集成 (CI) 或者持续部署 (CD) 环境中设置和运行 Android 模拟器变得较以往轻松了许多...这些容器无需运行生成脚本,从而节约了时间,降低了复杂度。预构建容器还支持 Docker 脚本所提供的所有功能,如 adb 与 web 访问。...下面的脚本展示了如何集成 Android 模拟器容器到您的系统,以及如何使用它们运行测试: #!/bin/bash # 这是我们将要运行的远程镜像。...它是一组包含下列使用 emu-docker 命令功能的最小脚本: emu-docker list: 查询已发布的兼容 Docker 的系统镜像,以及模拟器引擎的二进制文件,显示它们的下载链接。...这里提供了一个动态生成的、包含所有处于稳定和 Canary 版本的已发布系统镜像和模拟器的列表,此列表使用的数据与 SDK 管理器中描述模拟器和系统映像版本的数据相同,因此该列表始终是最新的; * [emu-docker

58020
领券