2016-04-28 94 views
0

我想安装一些包,但是,我不知道为什么我得到的容器这样的错误:npm ERR! Linux的4.1.19-boot2docker

npm ERR! Linux 4.1.19-boot2docker 
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" 
npm ERR! node v5.10.1 
npm ERR! npm v3.8.3 
npm ERR! path ../mime/cli.js 
npm ERR! code EPROTO 
npm ERR! errno -71 
npm ERR! syscall symlink 

npm ERR! EPROTO: protocol error, symlink '../mime/cli.js' -> '/app/myapp/node_modules/.bin/mime' 
npm ERR! 
npm ERR! If you need help, you may report this error at: 
npm ERR! https://github.com/npm/npm/issues 

npm ERR! Please include the following file with any support request: 
npm ERR! /app/myapp/npm-debug.log 
[Error] Failed to install npm dependencies. Exited with code 185. 

我Dockerfile是:

FROM node:latest 

# System update 
RUN apt-get -q -y update 

RUN apt-get -q -y install npm 
RUN npm install -g gulp-cli 
RUN npm install -g grunt-cli 


RUN apt-get clean && rm -r /var/lib/apt/lists/* 

EXPOSE 8080 

VOLUME ["/app"] 
WORKDIR /app 

任何可以帮助吗?

+0

这是在Windows上的boot2docker吗?看起来像它正试图创建的文件系统是从主机挂载到boot2docker虚拟机,而底层文件系统不支持符号链接。在npm github上看到这个类似的问题https://github.com/npm/npm/issues/9901 – joelnb

回答

0

您看到的错误提示npm未能在Docker容器中配置符号链接。使用--no-bin-links标志来避免这种情况:

npm install --no-bin-links 
+0

我不打算发布一个单独的答案,因为这基本上是解决方案,但只是为了清晰起见,你可以编辑你的答案只是'npm install --no-bin-links'?在Dockerfile中安装grunt和gulp可以正常工作,但后来的'npm install'命令(安装软件包的依赖关系)将会失败。请参阅我对github上的问题及相关问题的评论。 – joelnb

相关问题