我想使用Docker为简单的node.js项目创建开发环境。我想在Docker容器中安装我的项目的依赖项(它们都是npm包)(所以它们不会碰到我的主机)并仍然使用卷来安装我的代码。因此,容器应该能够 在装入卷的路径中找到node_modules
文件夹,但我不应该从主机上看到它。在Docker中安装npm依赖关系和从卷测试
这是我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
,所以它不是真的安装它:
> jasmine
sh: 1: jasmine: not found
我想用Docker完成什么?另一种方法是在全球范围内安装软件包。我也试过npm install -g
无济于事。
我在Debian上使用Docker版本1.12.1构建23cf638。
它也有利于把你的搬运工运行命令到YAML文件,然后使用泊坞窗,撰写启动它......尤其是当你有很多的体积,当然,一旦你涉及多个集装箱 –