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已经完成了大部分的工作:

  1. WORKDIR /usr/src/app – 设置工作区
  2. ONBUILD COPY package.json /usr/src/app/ – 将package.json文件复制到容器中。
  3. ONBUILD COPY bower.json .bowerrc* /usr/src/app/ – 将bower.json复制到容器中。
  4. ONBUILD RUN bower install – 安装凉亭

如果幸运的话,你可以做$ docker run -it --rm digitallyseamless/nodejs-bower-grunt ,(或$ docker run -it --rm digitallyseamless/nodejs-bower-grunt bower for bower),它会工作。