在 OpenShift 上部署 Create React App:EACCES:权限被拒绝,打开 '/home/node/app/.eslintcache'
Deploying Create React App on OpenShift: EACCES: permission denied, open '/home/node/app/.eslintcache'
我正在尝试使用 Docker 文件在 OpenShift 上部署一个 Create React App webapp。 OpenShift 构建成功完成,当我访问路线时,我能够看到应用程序 运行 1 秒,然后屏幕上出现此错误:
Failed to compile
EACCES: permission denied, open '/home/node/app/.eslintcache'
我不明白为什么会出现权限被拒绝的错误,因为我已经在我的 Docker 中为节点 Docker 图像提供的 node
用户分配了所需的目录权限]文件。
这是我的 Docker 文件:
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 I used as reference and the source repo。
更新:
多亏了 Will Gordon 的回答,我才弄明白了。 OpenShift 希望您指定用户 ID 而不是名称。此外,OpenShift 将容器作为属于组 0 的随机 ID 运行,因此需要指定该组的权限。这是工作 Docker 文件:
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 创建图像的更多指南
我正在尝试使用 Docker 文件在 OpenShift 上部署一个 Create React App webapp。 OpenShift 构建成功完成,当我访问路线时,我能够看到应用程序 运行 1 秒,然后屏幕上出现此错误:
Failed to compile
EACCES: permission denied, open '/home/node/app/.eslintcache'
我不明白为什么会出现权限被拒绝的错误,因为我已经在我的 Docker 中为节点 Docker 图像提供的 node
用户分配了所需的目录权限]文件。
这是我的 Docker 文件:
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 I used as reference and the source repo。
更新:
多亏了 Will Gordon 的回答,我才弄明白了。 OpenShift 希望您指定用户 ID 而不是名称。此外,OpenShift 将容器作为属于组 0 的随机 ID 运行,因此需要指定该组的权限。这是工作 Docker 文件:
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 创建图像的更多指南