2017-05-08 1 views
0

Diese Installation ist mein Dockerfile:einen neuen Benutzer in Dockerfile erstellen und nicht npm deps

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"] 

, die sie verwendet, um meine Anwendung zu erstellen von docker-compose

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

Wenn ich versuche, docker-compose up ich laufen den folgenden Fehler erhalten:

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. 

Warum läuft npm install als Benutzer app erhalten Sie den folgenden Fehler?

Antwort

1

Sie auf jeden Fall einen Berechtigungsfehler mit dem Eigentum auf den Ordner haben ... meine beste Vermutung ist RUN chown -R app:app $HOME/*RUN chown -R app:app $HOME

keine /* da drin sein sollte. Die -R Option von chown kümmert sich bereits um alle Unterordner.

+0

yep es löste das Problem ;-) – Mazzy

Verwandte Themen