2017-05-08 42 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