【发布时间】:2016-04-14 09:35:13
【问题描述】:
我正在使用 Docker,所以这个案例可能看起来很奇怪。但我希望在开发时将整个/data 目录安装在我的 docker 容器中。
我的/data 文件夹容器我的package.json 文件、app 目录和一堆其他东西。
问题是我希望我的node_modules 文件夹不是持久的,只有package.json 文件。
我已经尝试了几件事,但package.json 和npm 让我很难过...
- 直接挂载
package.json文件会破坏npm。 npm 尝试在保存时重命名文件,这在挂载文件时是不可能的。 - 挂载父文件夹 (
/data) 将挂载 node_modules 文件夹。 - 我找不到任何配置选项可以将 node_modules 放在
/data之外的另一个文件夹中,例如/dist - 将
package.json放入/data/conf将/data/conf安装为卷将不起作用。我找不到在npmrc中指定package.json路径的任何方法。 - 将
package.json放入/data/conf并将其符号链接到/data/package.json将不起作用。 npm 断开符号链接并将其替换为文件。
在 docker 容器内部来回复制数据是我现在的做法。有点乏味。我还想要一个干净的解决方案。
【问题讨论】:
-
这是一个笨重的工具,但是unionfs覆盖不能解决你的问题吗?
-
由于文件作为容器内的挂载点可见,所以没关系。它无法重命名(替换)文件,因为替换后它将与挂载点断开连接..
-
我通过使用全局安装路径来做到这一点:saulshanabrook.com/npm-docker-sharing-volumes