我想使用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文件,然後使用泊塢窗,撰寫啓動它......尤其是當你有很多的體積,當然,一旦你涉及多個集裝箱 –