小编elb*_*ero的帖子

了解npm和Node.js安装模块的位置

我已经使用Node.js和npm几周并取得了巨大成功,并开始质疑安装本地模块的最佳实践.我理解Global vs Local参数,但是,我的问题更多地与放置本地安装的位置有关.假设我有一个项目位于~/ProjectA/版本控制并由多个开发人员处理.当最初使用Node.js和npm时,我不知道默认的本地安装路径,只是简单地在默认终端中安装了必要的模块,导致安装路径为~/node_modules.最终做的是要求所有其他开发项目的开发人员在自己的机器上安装模块以运行应用程序.看到一些开发人员在哪里运行npm install我仍然感到非常惊讶它在他们的机器上工作(我猜它与Node.js和require()如何查找模块有关),但不用说,它有效.

既然项目已经过了"玩弄"阶段,我想正确设置项目文件夹.所以,我的问题是,模块是否应该安装在~/ProjectA/node_modules版本控制的项目文件中,因此它应该是版本控制的项目文件的一部分,还是应该继续位于特定于开发人员的机器位置......或者它真的不重要吗?

我只是在寻找一个关于这个的"最佳实践"指导以及其他人在设置项目时所做的工作.

node.js npm

11
推荐指数
1
解决办法
5813
查看次数

如何检查进程是否在 docker 容器内运行(cgroup v2 linux 主机)

如何检查进程是否正在 Docker 容器内运行?我想要一种可靠且面向未来的方法。

这个问题已经在如何确定进程是否在 lxc/Docker 中运行?,但是答案相当旧,并且它似乎不适用于最近的设置(启用了 cgroups v2 的 Linux 主机、Docker 20.10.x、内核 5.10.x)。

评价最高的答案(来自上面的链接)建议检查docker中的字符串/proc/1/cgroup,但是这是我得到的:

# cat /proc/1/cgroup 
0::/
Run Code Online (Sandbox Code Playgroud)

这似乎是因为我的主机上启用了 cgroups v2(它曾经与 cgroups v1 一起使用)。

另一个答案建议检查该文件是否存在/.dockerenv。有用:

# test -e /.dockerenv && echo ok
ok
Run Code Online (Sandbox Code Playgroud)

然而,Docker 维护者的评论(日期为 2016 年)建议不要依赖此文件(强调我的):

最初,“.dockerenv”用于跨容器边界传输容器的环境变量——我也不建议依赖它的存在(IIRC,您链接到的代码是它仍然存在的唯一原因)。/sys/fs/cgroup 内可能有一些有罪的东西,但我最近没有检查过。

-- https://github.com/moby/moby/issues/18355#issuecomment-220484748

那么还有比这更好的方法吗?非常欢迎 Docker 维护者的回答。谢谢!

linux cgroups docker

9
推荐指数
1
解决办法
1508
查看次数

标签 统计

cgroups ×1

docker ×1

linux ×1

node.js ×1

npm ×1