Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 在docker中安装npm依赖项并从卷中进行测试大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用Docker为简单的node.js项目创建开发环境.我想在docker容器中安装我的项目的依赖项(它们都是npm包)(因此它们不会触及我的主机)并且仍然使用卷安装我的代码.所以,容器应该能够
在我挂载卷的路径中找到node_modules文件夹,但我不应该从主机上看到它.

这是我的Dockerfile:

FROM node:6


RUN mkdir /code
COPY package.json /code/package.json
WORKDIR /code

RUN npm install

这是我运行它的方式:

docker build --tag my-dev-env .

docker run --rm --interactive --tty --volume $(pwd):/code my-dev-env npm test

这是我的package.json:

{
    "private": true,"name": "my-project","version": "0.0.0","description": "My project","scripts": {
      "test": "jasmine"
    },"devDependencies": {
      "jasmine": "2.4"
    },"license": "MIT"
  }

它失败了,因为它找不到茉莉花,所以它并没有真正安装它:

> jasmine

sh: 1: jasmine: not found

可以用Docker完成我想要的吗?另一种方法是全局安装软件包.我也试过npm install -g无济于事.

我在Debian上使用Docker版本1.12.1,构建23cf638.

解决方法

解决方案是将/ code / node_modules声明为卷,只是不将其绑定挂载到主机中的任何目录.像这样:

docker run --rm --interactive --tty --volume /code/node_modules --volume $(pwd):/code my-dev-env npm test

正如@jesusRT所指出的那样,npm install工作得很好,但绑定挂载$(pwd)到/ code单独隐藏了图像中/ code的现有内容.我们可以通过将它声明为数据卷来恢复我们想要的/容器中的代码在本例中,只是/ code / node_modules,如上所示.

Docker-compose: node_modules not present in a volume after npm install succeeds中已经讨论了一个非常类似的问题.

大佬总结

以上是大佬教程为你收集整理的node.js – 在docker中安装npm依赖项并从卷中进行测试全部内容,希望文章能够帮你解决node.js – 在docker中安装npm依赖项并从卷中进行测试所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。