Docker卷命令行选项将目录中的文件弄错
我有以下命令:
docker run --privileged=true -it --rm \ -w /usr/src/app \ -v ./package.json:/usr/src/app/package.json \ -v .bowerrc:/usr/src/app/.bowerrc \ -v ./bower.json:/usr/src/app/bower.json \ -v ./build/npm.tmp/node_modules:/usr/src/app/build/npm.tmp/node_modules \ -v ./build/npm.tmp/bignibou-client/src/bower_components:/usr/src/app/build/npm.tmp/bignibou-client/src/bower_components \ digitallyseamless/nodejs-bower-grunt bash
我最终将package.json
作为docker容器中的一个目录 , 而不是一个文件 。
root@c706711a7ad4:/usr/src/app# cat package.json/ cat: package.json/: Is a directory
我怎样才能解决这个问题? 我的语法错了什么?
编辑 :
使用@manojlds的build议工作正常:
更改为-v $(pwd)/package.json:/usr/src/app/package.json \
整理出这个问题。
尝试提供一个绝对path,而不是相对path:
-v /home/projects/package.json:/user/src/app/package.json
看起来digitallyseamless/nodejs-bower-grunt
回购中的digitallyseamless/nodejs-bower-grunt
已经完成了大部分的工作:
-
WORKDIR /usr/src/app
– 设置工作区 -
ONBUILD COPY package.json /usr/src/app/
– 将package.json
文件复制到容器中。 -
ONBUILD COPY bower.json .bowerrc* /usr/src/app/
– 将bower.json
复制到容器中。 -
ONBUILD RUN bower install
– 安装凉亭
如果幸运的话,你可以做$ docker run -it --rm digitallyseamless/nodejs-bower-grunt
,(或$ docker run -it --rm digitallyseamless/nodejs-bower-grunt bower
for bower),它会工作。