【问题标题】:Openshift pod permission issue EACCES: permission denied, mkdir '/usr/src/app/node_modules/.cache'Openshift pod 权限问题 EACCES:权限被拒绝,mkdir '/usr/src/app/node_modules/.cache'
【发布时间】:2021-12-31 18:08:41
【问题描述】:

我正在尝试构建一个 docker 镜像并尝试部署到 OpenShift,下面是 docker 文件

FROM node:14.18.0-alpine
COPY . /usr/src/app
RUN chgrp -R 0 /usr/src/app && chmod -R g=u /usr/src/app
WORKDIR /usr/src/app
RUN npm install
EXPOSE 4308

Docker 镜像构建很好,但我想在 pod 内执行以下命令:

npm run build && PORT=4308 NODE_TLS_REJECT_UNAUTHORIZED=0 NODE_ENV=uat node server

但是当我尝试在 OpenShift pod 中这样做时,它会出现以下权限问题:

EACCES:权限被拒绝,mkdir '/usr/src/app/node_modules/.cache

如何确保 OpenShift pod 使用的随机用户能够在没有任何权限问题的情况下执行文件或文件夹创建?我不想使用 SCC 权限。

【问题讨论】:

    标签: permissions openshift


    【解决方案1】:

    使用 gid=0 获取权限的想法是正确的。

    如果没有看到容器本身,我会冒险猜测您的“npm install”正在创建新文件/目录,并且您需要在该步骤之后而不是之前执行 chgrp/chmod。

    【讨论】:

    • 是的,我也尝试在 npm install 之后添加那些权限更改命令,仍然有权限相关的错误
    • EPERM:不允许操作,lchown '/usr/src/app/node_modules/.cache/angular-build-dl/tmp'。我认为在 npm run build 期间它正在尝试执行一些失败的操作
    猜你喜欢
    • 2021-07-15
    • 2021-08-10
    • 2019-09-19
    • 2021-12-22
    • 2023-03-25
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2018-08-01
    相关资源
    最近更新 更多