我的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
报错信息:
我已经尝试过以下几种方法:
- Dockerfile配置中添加
RUN chmod -R 777 /yice
- Dockerfile配置添加
USER root
,它会报:
找不Chrome,然后因为ghcr.io/puppeteer/puppeteer:latest镜像切换的用户名为pptruser
,所以我手动在代码里给puppeteer配置executablePath: '/home/pptruser/node_modules/chrome'
,它又报找不到
- Dockerfile配置添加
USER pptruser
,它还是报:
请问有没有大佬指点下?感谢🙏了
这里改成
复制的时候,设置用户和组。
或者把
chmod -R 777 /yice
这行移动到COPY
下面。因为是先执行的
chmod
,后面再执行COPY
的时候,777
的权限就被覆盖了。