在OpenShift上部署Create Reaction App:EACCES:权限被拒绝,打开/home/node/app/.eslintcache' [英] Deploying Create React App on OpenShift: EACCES: permission denied, open '/home/node/app/.eslintcache'

查看:39
本文介绍了在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(全部试用)

这里是我用作参考的tutorialsource 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应用于用户。

您可以在文档https://docs.openshift.com/container-platform/3.11/creating_images/guidelines.html#openshift-specific-guidelines

中找到有关为OpenShift创建图像的更多指南

这篇关于在OpenShift上部署Create Reaction App:EACCES:权限被拒绝,打开/home/node/app/.eslintcache'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆