gpt4 book ai didi

node.js - 如何使用永久 sqlite 数据库运行我的 node.js 进程?

转载 作者:太空宇宙 更新时间:2023-11-03 23:54:40 24 4
gpt4 key购买 nike

我的 Node.JS 应该使用本地 SQLite 数据库存储数据。但是,当我停止容器时,SQLite 数据会丢失,因为它正在写入 docker 路径(容器停止时会被删除),我怎样才能使 SQLite 数据库保持持久性?

这是我的 Dockerfile:

FROM node:10.15.3

RUN mkdir -p /usr/src/test
WORKDIR /usr/src/test

COPY package.json /usr/src/test
RUN npm install

COPY . /usr/src/test

CMD ["node","index.js"]

我在另一个问题上读到我应该使用VOLUME [],但我不知道如何使用它。

最佳答案

how can I make it so the SQLite databases stay persistent?

运行容器时,使用 docker run -v 选项挂载某种外部存储来保存数据库。如果数据库文件所在的目录中没有应用程序源,这会很有帮助。

docker run -v $PWD/db:/usr/src/test/db ...

在 Docker 中维护文件存储可能有点麻烦(如果您要查看 Docker Swarm 或 Kubernetes 等集群系统,情况会变得更糟),您应该考虑在第二个容器中使用“真正的”关系数据库。

should [I] use VOLUME []

除非您 100% 清楚它的作用以及为什么需要它,否则您不应该在 Dockerfile 中使用 VOLUME。它大多只有令人困惑的副作用。您可以将外部文件或命名卷装载到容器中,如上所示,无需任何 VOLUME 声明。

关于node.js - 如何使用永久 sqlite 数据库运行我的 node.js 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57813439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com