Docker容器报权限不足,如何配置权限?

我的Dockerfile配置:

FROM ghcr.io/puppeteer/puppeteer:latest

EXPOSE 4000

# 设置工作目录
WORKDIR /yice

RUN chmod -R 777 /yice

# # 复制源码
COPY ./dist /yice/dist
COPY ./scripts /yice/scripts
COPY ./.env /yice/
COPY ./package.json /yice
COPY ./static /yice/static
COPY ./tsconfig.json /yice/
COPY ./tsconfig.build.json /yice/
COPY ./node_modules /yice/node_modules
CMD npm run start:prod

报错信息:
image.png

我已经尝试过以下几种方法:

  • Dockerfile配置中添加RUN chmod -R 777 /yice
  • Dockerfile配置添加 USER root,它会报:
    image.png
    找不Chrome,然后因为ghcr.io/puppeteer/puppeteer:latest镜像切换的用户名为pptruser,所以我手动在代码里给puppeteer配置executablePath: '/home/pptruser/node_modules/chrome' ,它又报找不到
    image.png
  • Dockerfile配置添加 USER pptruser,它还是报:
    image.png

请问有没有大佬指点下?感谢🙏了

阅读 3.3k
1 个回答
COPY ./static /yice/static

这里改成

COPY --chown=pptruser:pptruser ./static /yice/static

复制的时候,设置用户和组。

或者把 chmod -R 777 /yice 这行移动到 COPY 下面。
因为是先执行的 chmod ,后面再执行 COPY 的时候,777 的权限就被覆盖了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏