我有一个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问题解决这个项目?
答案 0 :(得分:1)
问题是您的应用依赖于pg包的特定版本。我会找到你需要的版本并运行:
npm install pg@x.x --save
其中x.x是您的应用程序依赖于运行的版本,并且--save以确保您的package.json文件中的依赖项已更新。
您只需告诉您的应用,您的应用依赖于哪个版本。 (基本上)...