Docker运行puppeteer时容器内报错Error: EACCES: permission denied

Docker运行puppeteer时容器内报错Error: EACCES: permission denied
发布于
# docker

在使用docker 运行 puppeteer 时报出如下错误

docker run --rm -v /root/home/app/:/app/ alekzonder/puppeteer:latest


Error: EACCES: permission denied, open 'example.png'
  -- ASYNC --
    at Page.<anonymous> (/app/node_modules/puppeteer/lib/helper.js:111:15)
    at /app/dist/index.js:23:16
    at processTicksAndRejections (internal/process/task_queues.js:94:5) {
  errno: -13,
  code: 'EACCES',
  syscall: 'open',
  path: 'example.png'
}


Docker运行puppeteer时容器内报错Error: EACCES: permission denied

在运行参数中加 -it 参数,也就是 docker run --rm -it -v /root/home/app/:/app/ alekzonder/puppeteer:latest /bin/bash

运行后发现容器内的用户是 pptruser。


解决办法:

docker run 的时候加参数 --user root  即可解决容器内写文件权限问题。

也就是

docker run --rm --user root -v /root/home/app/:/app/ alekzonder/puppeteer:latest