You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins中Docker执行npm install报错Missing write access to /app如何解决?

问题原因

Docker构建过程中,你在切换到node用户后才设置/app作为工作目录,Docker自动生成的/app目录默认所有者为root用户,同时你复制package*.json文件时没有指定文件所有者,文件默认归root所有。node用户没有/app目录的写入权限,执行npm install时需要写入依赖文件、创建node_modules目录,就会触发权限报错。
本地运行正常通常是因为本地构建有历史缓存,/app目录已经被修改过权限,或是你本地测试时使用root用户执行容器操作,因此没有触发问题。

修复方案

推荐在切换普通用户前先完成工作目录的权限配置,修改后的Dockerfile参考如下:

# 此时默认使用root用户操作,创建工作目录并修改所有者
WORKDIR /app
RUN chown node:node /app
# 切换到node用户后再执行后续操作
USER node
# 复制package文件时指定所有者为node
COPY --chown=node:node package*.json ./
RUN npm install
COPY --chown=node:node ./cypress.json ./cypress.json
COPY --chown=node:node . .
CMD [ "bash" ]

内容的提问来源于stack exchange,提问作者Mona101ma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:15:06