gpt4 book ai didi

node.js - "meteor run --production"与 MONGO_URL 与捆绑

转载 作者:IT老高 更新时间:2023-10-28 21:37:25 25 4
gpt4 key购买 nike

也许我的问题与 this 重复但我觉得它增加了一些使其有所不同的细节。

我目前有一个基于 node:0.10 镜像的 Meteor Docker 设置,它首先捆绑应用程序并运行“node main.js”作为其 CMD。该镜像还安装 Meteor 并使用其命令引导环境并安装必要的软件包。

我突然想到,如果不使用 node:0.10,我可以使用更小的 Linux 镜像并简单地安装 curl/git/meteor,那么该镜像将大大简化。删除构建步骤将进一步简化事情,因为根据我的理解,“ meteor 构建”如果已配置但不需要,则无法不构建移动应用程序(即,如果我通常构建 Android/IOS 应用程序,我不能轻易 如果我只想要一个 bundle ,则不要构建它们)。此外,我的开发环境已经使用 MONGO_URL 和一个容器化的 MongoDB 实例,所以我在开发时甚至没有使用本地数据库。

那么,设置 MONGO_URL 的“meteor run --production”和“node main.js”有什么区别?在一种情况下会发生什么而在另一种情况下不会发生?

特别是,“meteor run --production”是否检测到 MONGO_URL 的存在,而不是启动一个单独的、未使用的 mongod?我清楚地看到 MONGO_URL 指向的数据库中的数据,但我不确定 meteor 命令是否会启动一个单独的命令并浪费 CPU 周期/RAM。基于前面的问题,我认为它仍然会轮询文件系统以进行更改。但这只是在 Linux 下使用 inotify 吗,我是否正确地假设这是一个相当小的性能损失?

我想,如果我需要我的服务器的每一盎司性能,那么捆绑是可行的方法。但是,如果在设置 MONGO_URL 的情况下运行“meteor run --production”只会对性能造成轻微影响,同时大大简化了我的设置,那么简化 Dockerfile 并更紧密地统一我的开发/生产设置对我来说可能是值得的。

谢谢。

最佳答案

需要注意的是 meteor run --production ... 的意思是“在模拟生产的开发环境中运行”,而不是“这就是你应该在生产中运行应用程序的方式”。

所以当你运行上面的命令时 process.env.NODE_ENV 被设置为 development

https://github.com/meteor/meteor/issues/180#issuecomment-30043150

关于node.js - "meteor run --production"与 MONGO_URL 与捆绑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28255934/

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