在alpine chrome docker映像中运行npm安装的权限被拒绝

在alpine chrome docker映像中运行npm安装的权限被拒绝,docker,dockerfile,puppeteer,npm-install,alpine,Docker,Dockerfile,Puppeteer,Npm Install,Alpine,我正在尝试在alpin chrome(86带节点)上创建我自己的docker图像,以便在Puppeter上使用我的nodejs应用程序 有人能告诉我为什么我不能访问应用程序目录来安装npm软件包吗?默认情况下,安装npm软件包就像一个魔咒 我尝试了以下dockerfile: FROM zenika/alpine-chrome:86-with-node ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true # Create app directory WORKDI

我正在尝试在alpin chrome(86带节点)上创建我自己的docker图像,以便在Puppeter上使用我的nodejs应用程序

有人能告诉我为什么我不能访问应用程序目录来安装npm软件包吗?默认情况下,安装npm软件包就像一个魔咒

我尝试了以下dockerfile:

FROM zenika/alpine-chrome:86-with-node

ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true

# Create app directory
WORKDIR /usr/src/scraper

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN npm ci --only=production
# If you are building your code for development
# RUN npm install

# Bundle app source
COPY . .


EXPOSE 3040
CMD [ "node", "app.js" ]
但我得到了以下错误:

Step 5/9 : RUN npm ci --only=production
 ---> Running in 06c02bd505ac
npm ERR! code EACCES
npm ERR! syscall mkdir
npm ERR! path /usr/src/scraper/node_modules
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, mkdir '/usr/src/scraper/node_modules'
npm ERR!  [OperationalError: EACCES: permission denied, mkdir '/usr/src/scraper/node_modules'] ***
npm ERR!   cause: [Error: EACCES: permission denied, mkdir '/usr/src/scraper/node_modules'] ***
npm ERR!     errno: -13,
npm ERR!     code: 'EACCES',
npm ERR!     syscall: 'mkdir',
npm ERR!     path: '/usr/src/scraper/node_modules'
npm ERR!   ***,
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/usr/src/scraper/node_modules'
npm ERR! ***
npm ERR! 
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR! 
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

请尝试这里的官方帮助文档,看看这是否解决了问题


如果您是从缓存生成映像,请尝试以--no cache作为参数的docker生成,以获得干净的生成。

尝试使用用户根目录

FROM zenika/alpine-chrome:86-with-node
USER root

正如您所看到的,这些软件包不是全局安装的……而且由于它是dockerfile,所以它安装在一个干净的版本上!