【发布时间】:2016-02-27 04:44:29
【问题描述】:
我有一个 dockerized 项目,其中包含三个应用程序和三个数据库。三个app都是用node写的,照常使用npm。
我有一个克隆三个 repos 的脚本,docker-compose.yaml 挂载三个容器并为三个项目中的每一个使用Dockerfile,基本上只是执行一个npm install 并运行它们。
这一切都很好,但是这个练习的重点是使项目集群易于设置和运行以用于开发目的。实际上处理项目代码不是问题,因为它是由开发人员克隆的,但npm install 是通过 docker 完成的,因此是 root。这意味着 repos 中的 node_modules 归 root 所有。
开发人员不能简单地通过 npm install 将新包添加到 repo,因为他们没有 node_modules 的权限,并且模块可能会根据他们的主机系统使用不同的架构构建。
我曾考虑过创建一个在容器中运行 npm install 的脚本,但这有几点需要注意:
-
root将拥有package.json - 这打破了典型的节点开发人员的流程......他们习惯于只做
npm install
就像我上面所说的,这样做的全部目的是尽可能容易地参与和开发,所以我想尽可能接近共同的开发体验。
对于在 docker 容器中安装节点模块以开发项目有什么建议吗?
【问题讨论】:
标签: node.js docker npm docker-compose