【发布时间】:2016-12-29 11:43:36
【问题描述】:
我想使用 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而失败,所以并没有真正安装它:
> jasmine
sh: 1: jasmine: not found
我想用 Docker 完成吗?另一种方法是全局安装软件包。我也尝试了npm install -g 无济于事。
我在 Debian 上使用 Docker 版本 1.12.1,构建 23cf638。
【问题讨论】:
标签: node.js docker npm development-environment dependency-management