在OpenShift上部署Create Reaction App:EACCES:权限被拒绝,打开/home/node/app/.eslintcache'; [英] Deploying Create React App on OpenShift: EACCES: permission denied, open '/home/node/app/.eslintcache'
本文介绍了在OpenShift上部署Create Reaction App:EACCES:权限被拒绝,打开/home/node/app/.eslintcache';的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用Dockerfile在OpenShift上部署Create Reaction App WebApp。OpenShift构建成功完成,当我访问路线时,我可以看到应用程序运行了1秒,然后屏幕上出现以下错误:
Failed to compile
EACCES: permission denied, open '/home/node/app/.eslintcache'
我不明白为什么会出现权限拒绝错误,因为我已经将所需的目录权限分配给了由Dockerfile中的节点Docker映像提供的node
用户。
这是我的Dockerfile:
FROM node:14-alpine
RUN mkdir -p /home/node/app &&
chmod -R 775 /home/node/app &&
chown -R node:node /home/node/app
WORKDIR /home/node/app
COPY package*.json /home/node/app/
USER node
RUN npm install
COPY --chown=node:node . /home/node/app
EXPOSE 3000
CMD ["npm", "start"]
软件版本:
反应脚本4.0.1
OpenShift 4.2、4.4、4.5(全部试用)
这里是我用作参考的tutorial和source repo。
更新:
多亏了威尔·戈登的回答,我才能弄明白。OpenShift希望您指定用户ID,而不是名称。此外,OpenShift将容器作为属于组0的随机ID运行,因此需要指定该组的权限。以下是工作文档文件:
FROM node:14-alpine
RUN mkdir -p /home/node/app &&
chown -R node:node /home/node/app
WORKDIR /home/node/app
RUN chgrp -R 0 /home/node/app &&
chmod -R g+rwX /home/node/app
COPY package*.json /home/node/app/
USER 1000
RUN npm install
COPY --chown=node:node . /home/node/app
EXPOSE 3000
CMD ["npm", "start"]
推荐答案
您正在设置特定用户和该用户的权限。OpenShift的默认配置是使用随机UID运行容器。建议在设置权限时使用根GID(GID 0),而不是UID,因为OpenShift会自动将GID 0应用于用户。
中找到有关为OpenShift创建图像的更多指南这篇关于在OpenShift上部署Create Reaction App:EACCES:权限被拒绝,打开/home/node/app/.eslintcache';的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文