将Docker导向本地NPM软件包时无法完成npm安装
我无法在任何地方find这个问题的答案,所以我希望这里有人可能遇到类似的问题。
我正试着装一个NodeJS应用程序,但在RUN npm install
期间遇到这个错误:
npm ERR! 无法从“packages / example-package”进行安装,因为它不包含package.json文件
有问题的软件包在本应用程序的package.json中被列为本地依赖项:
"dependencies": { "@example-name/example-package": "file:../example-package" },
使用这些本地文件path,在npm install
之外运行npm install
是没有问题的。
我已经尝试通过Dockerfile将包package.json文件复制到容器中,如下所示:
COPY ./packages/example-package/package.json ./packages/example-package
由此产生的错误是:
npm ERR! 无法安装“packages / example-packages”,因为它不是一个目录,也不是以.tgz,.tar.gz或.tar结尾的文件
我不知道该从哪里出发! 有什么build议么?
你最终得到一个名为./packages/example-package
的文件,其中包含了package.json
的内容,而不是一个目录。
你可以通过临时添加一个文件/目录到你的Dockerfile
来Dockerfile
RUN cat ./packages/example-package
使用目标path末尾的/
来使其成为目录或指定文件的完整path。
COPY ./packages/example-package/package.json ./packages/example-package/ COPY ./packages/example-package/package.json ./packages/example-package/package.json