这是我的Dockerfile
:
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
会出现以下错误?
您肯定在文件夹所有权方面存在权限错误...我最好的猜测RUN chown -R app:app $HOME/*
应该是RUN chown -R app:app $HOME
没有/*
在那里。的-R
的选项chown
已经采取所有子文件夹的照顾。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句