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

在Docker容器执行npm ci遇TAR_ENTRY_ERROR错误,求解决方法

解决Docker中node:18.15-alpine执行npm ci时的TAR_ENTRY_ERROR EINVAL错误

在使用node:18.15-alpine镜像的Docker容器中执行npm ci时,若出现如下错误:

$ npm ci
npm WARN tar TAR_ENTRY_ERROR EINVAL: invalid argument, fchown
npm WARN tar TAR_ENTRY_ERROR EINVAL: invalid argument, fchown
npm WARN tar TAR_ENTRY_ERROR EINVAL: invalid argument, fchown

可尝试以下几种解决方案:

  • 启用unsafe-perm配置
    允许npm在非root用户下执行权限相关操作,避免解压时的fchown失败:

    npm ci --unsafe-perm=true
    

    或提前配置npm参数:

    npm config set unsafe-perm true
    npm ci
    
  • 以root用户执行后回退权限
    在Dockerfile中临时切换到root用户执行依赖安装,完成后将权限转回业务用户:

    USER root
    RUN npm ci
    RUN chown -R appuser:appuser node_modules
    USER appuser
    
  • 升级npm版本
    该错误在npm 9.6.2中存在已知问题,升级到9.8.0及以上版本(或npm 10.x系列)可修复:

    npm install -g npm@latest && npm ci
    

    在Dockerfile中可直接集成:

    RUN npm install -g npm@latest && npm ci
    
  • 跳过tar的chown操作
    通过环境变量禁用解压时的所有者修改步骤:

    NPM_CONFIG_TAR_CHOWN=false npm ci
    

    或在Dockerfile中设置环境变量:

    ENV NPM_CONFIG_TAR_CHOWN=false
    RUN npm ci
    

内容的提问来源于stack exchange,提问作者Raphaël Balet

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 14:45:15