构建Kibana 7.9.1 Docker镜像时报spdx相关依赖缺失错误
问题根因
所有报错都指向spdx-exceptions、spdx-license-ids两个依赖缺失,结合你给出的场景,触发原因有两种可能性:
- 你发布到Gitlab Package Registry的自定义@elastic/eui包的package.json配置有误,将这两个运行时必须的间接依赖写到了devDependencies中,或是漏写了依赖声明
- Docker构建流程执行了生产模式的依赖安装(即带
--production参数执行yarn install),会自动跳过所有devDependencies,本地开发模式执行的是全量依赖安装,因此不会触发缺失问题
修复方案
你可以按优先级尝试以下操作:
- 优先修复自定义@elastic/eui包的依赖声明:将
spdx-exceptions、spdx-license-ids添加到该包的dependencies字段中,重新发布后再执行构建 - 检查Docker构建的依赖安装逻辑:
- 移除yarn install命令后的
--production类过滤参数 - 确认
yarn.lock没有被写入.dockerignore,构建时会使用本地验证过的依赖版本 - 确认Docker构建环境中配置了正确的Gitlab Package Registry访问权限,不会出现私有包拉取失败的情况
- 移除yarn install命令后的
- 临时快速修复:直接在项目根目录执行
yarn add spdx-exceptions spdx-license-ids,显式安装缺失依赖后再执行构建即可
内容的提问来源于stack exchange,提问作者Nicolas Peron
相关产品推荐
相关产品推荐

