使用 digitallyseamless/nodejs-bower-grunt docker 镜像对 npm 和 bower 安装进行 Docker 化
Dockerizing npm & bower install using the digitallyseamless/nodejs-bower-grunt docker image
我正在尝试 使用 docker 以便 运行 npm 和 bower 安装。
这是我的配置:
./package.json
{
"name": "bignibou-client",
"version": "0.1.0",
"engines": {
"node": "0.10.x"
},
"devDependencies": {
"bower": "1.3.12",
"grunt": "~0.4.5",
"grunt-contrib-uglify": "~0.6.0",
"grunt-contrib-concat": "~0.5.0",
"karma": "~0.12.23",
"grunt-karma": "~0.9.0",
"karma-junit-reporter": "~0.2.2",
"karma-jasmine": "~0.1.5",
"karma-phantomjs-launcher": "~0.1.4",
"phantomjs": "~1.9.11",
"grunt-mkdir": "~0.1.2",
"grunt-contrib-cssmin": "~0.10.0",
"grunt-contrib-clean": "~0.6.0",
"grunt-contrib-copy": "~0.7.0",
"karma-htmlfile-reporter": "~0.1.2",
"grunt-filerev": "~2.1.2",
"grunt-usemin": "~2.6.2",
"grunt-protractor-runner": "~1.1.4",
"protractor": "~1.4.0",
"flow": "~0.2.3",
"assemble-less": "~0.7.0"
},
"scripts": {
"postinstall": "node_modules/bower/bin/bower install"
}
}
.bowerrc
{
"json": "bower.json", "directory": "bignibou-client/src/bower_components"
}
我的命令:
docker run --privileged=true -it --rm \
-w /usr/src/app \
-v $(pwd)/package.json:/usr/src/app/package.json \
-v $(pwd)/.bowerrc:/usr/src/app/.bowerrc \
-v $(pwd)/./bower.json:/usr/src/app/bower.json \
-v ./build/npm.tmp/node_modules:/usr/src/app/node_modules \
-v ./build/npm.tmp/bignibou-client/src/bower_components:/usr/src/app/bignibou-client/src/bower_components \
digitallyseamless/nodejs-bower-grunt npm install
我刚得到以下控制台输出:
npm WARN package.json bignibou-client@0.1.0 No description
npm WARN package.json bignibou-client@0.1.0 No repository field.
npm WARN package.json bignibou-client@0.1.0 No README data
npm WARN package.json bignibou-client@0.1.0 No license field.
并且主机上没有生成任何内容...
有人可以就如何让它工作或替代解决方案提供建议吗?
编辑:
运行以下命令:
docker run --privileged=true -it --rm \
-w /usr/src/app \
-v $(pwd):/usr/src/app \
digitallyseamless/nodejs-bower-grunt npm install
结果:
npm WARN package.json bignibou-client@0.1.0 No repository field.
npm WARN package.json bignibou-client@0.1.0 No license field.
npm WARN cannot run in wd bignibou-client@0.1.0 node_modules/bower/bin/bower install (wd=/usr/src/app)
-v $(pwd)/package.json:/usr/src/app/package.json
此标志将创建一个 package.json 目录而不是文件。
您的命令应如下所示:
docker run --privileged=true -it --rm \
-w /usr/src/app \
-v $(pwd):/usr/src/app\
digitallyseamless/nodejs-bower-grunt bash -c "npm install && bower --allow-root install"
并且在此脚本之后在 HOST
mashine 的当前目录中创建 node_modules
和 bower_components
,您可以根据需要操作结果。
我正在尝试 使用 docker 以便 运行 npm 和 bower 安装。
这是我的配置:
./package.json
{
"name": "bignibou-client",
"version": "0.1.0",
"engines": {
"node": "0.10.x"
},
"devDependencies": {
"bower": "1.3.12",
"grunt": "~0.4.5",
"grunt-contrib-uglify": "~0.6.0",
"grunt-contrib-concat": "~0.5.0",
"karma": "~0.12.23",
"grunt-karma": "~0.9.0",
"karma-junit-reporter": "~0.2.2",
"karma-jasmine": "~0.1.5",
"karma-phantomjs-launcher": "~0.1.4",
"phantomjs": "~1.9.11",
"grunt-mkdir": "~0.1.2",
"grunt-contrib-cssmin": "~0.10.0",
"grunt-contrib-clean": "~0.6.0",
"grunt-contrib-copy": "~0.7.0",
"karma-htmlfile-reporter": "~0.1.2",
"grunt-filerev": "~2.1.2",
"grunt-usemin": "~2.6.2",
"grunt-protractor-runner": "~1.1.4",
"protractor": "~1.4.0",
"flow": "~0.2.3",
"assemble-less": "~0.7.0"
},
"scripts": {
"postinstall": "node_modules/bower/bin/bower install"
}
}
.bowerrc
{
"json": "bower.json", "directory": "bignibou-client/src/bower_components"
}
我的命令:
docker run --privileged=true -it --rm \
-w /usr/src/app \
-v $(pwd)/package.json:/usr/src/app/package.json \
-v $(pwd)/.bowerrc:/usr/src/app/.bowerrc \
-v $(pwd)/./bower.json:/usr/src/app/bower.json \
-v ./build/npm.tmp/node_modules:/usr/src/app/node_modules \
-v ./build/npm.tmp/bignibou-client/src/bower_components:/usr/src/app/bignibou-client/src/bower_components \
digitallyseamless/nodejs-bower-grunt npm install
我刚得到以下控制台输出:
npm WARN package.json bignibou-client@0.1.0 No description
npm WARN package.json bignibou-client@0.1.0 No repository field.
npm WARN package.json bignibou-client@0.1.0 No README data
npm WARN package.json bignibou-client@0.1.0 No license field.
并且主机上没有生成任何内容...
有人可以就如何让它工作或替代解决方案提供建议吗?
编辑:
运行以下命令:
docker run --privileged=true -it --rm \
-w /usr/src/app \
-v $(pwd):/usr/src/app \
digitallyseamless/nodejs-bower-grunt npm install
结果:
npm WARN package.json bignibou-client@0.1.0 No repository field.
npm WARN package.json bignibou-client@0.1.0 No license field.
npm WARN cannot run in wd bignibou-client@0.1.0 node_modules/bower/bin/bower install (wd=/usr/src/app)
-v $(pwd)/package.json:/usr/src/app/package.json
此标志将创建一个 package.json 目录而不是文件。
您的命令应如下所示:
docker run --privileged=true -it --rm \
-w /usr/src/app \
-v $(pwd):/usr/src/app\
digitallyseamless/nodejs-bower-grunt bash -c "npm install && bower --allow-root install"
并且在此脚本之后在 HOST
mashine 的当前目录中创建 node_modules
和 bower_components
,您可以根据需要操作结果。