2017-05-08 41 views
0

这是我Dockerfile创建Dockerfile一个新用户,并无法安装NPM的DEP

FROM node:7.10.0 

RUN useradd --user-group --create-home --shell /bin/false app 

RUN mkdir -p /usr/src/hello 
ENV HOME=/usr/src/ 

COPY package.json $HOME/hello/ 
RUN chown -R app:app $HOME/* 

RUN npm install -g pm2 

USER app 
WORKDIR $HOME/hello 
RUN npm install 

EXPOSE 8080 

CMD ["npm", "start"] 

它用于从docker-compose

version: '2' 
services: 
    hello: 
    build: ./hello 
    command: "pm2-docker server.js" 
    ports: 
     - 8080:8080 
    volumes: 
     - ./hello:/usr/src/hello 

建立我的应用程序当我尝试运行docker-compose up我得到以下错误:

npm ERR! Error: EACCES: permission denied, mkdir '/usr/src/.npm/hapi' 
npm ERR! { Error: EACCES: permission denied, mkdir '/usr/src/.npm/hapi' 
npm ERR! errno: -13, 
npm ERR! code: 'EACCES', 
npm ERR! syscall: 'mkdir', 
npm ERR! path: '/usr/src/.npm/hapi', 
npm ERR! parent: 'hello' } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

为什么要运行npm install作为用户app得到以下错误?

回答

1

你肯定有一个权限错误与文件夹的所有权......我最好的猜测是RUN chown -R app:app $HOME/*应该RUN chown -R app:app $HOME

没有/*在那里。 chown-R选项已经处理所有的子文件夹。

+0

是的,它解决了这个问题;-) – Mazzy