npm在一个docker镜像中安装2个项目

时间:2017-08-15 04:42:14

标签: javascript node.js postgresql npm statsd

我有一个docker容器,它将2个节点项目合并为一个。项目A是statsd project,项目B是postgres后端项目,使用npm包pg写入postgres数据库。我在一个2个独立的回购中同时拥有A和B.然后我将它们分别复制到docker镜像中,如Dockerfile中的以下内容:

COPY ./statsd/ /opt/statsd/
COPY ./postgres-backend/ /opt/statsd/postgres-backend/

然后我将javascript从postgres-backend复制到docker内的文件夹/opt/statsd/backends/。在这个阶段,我可以使用自己的package.json规范在npm install目录中/opt/statsd。但是,我的postgres-backend repo有自己的package.json文件,用于指定所需的依赖项(在本例中为pg)。我尝试切换到/opt/statsd/postgres-backend目录并执行npm install。那只安装在子目录中。当我在statsd.js目录中运行/opt/statsd时,它抱怨未找到模块pg

如何用2个package.json问题解决这个项目?

1 个答案:

答案 0 :(得分:1)

问题是您的应用依赖于pg包的特定版本。我会找到你需要的版本并运行:

npm install pg@x.x --save

其中x.x是您的应用程序依赖于运行的版本,并且--save以确保您的package.json文件中的依赖项已更新。

您只需告诉您的应用,您的应用依赖于哪个版本。 (基本上)...