Docker Compose启动lafs-api容器失败:Node版本兼容报错
解决方案:Node 10.23.0下lafs-api容器启动报错处理
问题根源
报错中的type = 'EphemeralArray'是ES类公共字段语法,Node.js 10.x版本默认不支持该特性(该语法在Node 12.0.0及以上才被默认启用,Node 10需开启实验性标志但不适用于作业场景)。当前安装的@swagger-api/apidom-core新版本使用了该不兼容语法,导致容器启动失败。
解决步骤
1. 锁定兼容Node 10的apidom-core版本
修改项目根目录的package.json,将@swagger-api/apidom-core的版本锁定为兼容Node 10的版本(如^0.90.0,此版本及之前未使用类字段语法):
"dependencies": { // 其他依赖保持不变 "@swagger-api/apidom-core": "^0.90.0" }
或者直接通过命令安装指定版本:
npm install @swagger-api/apidom-core@0.90.0 --save
2. 清理旧依赖并重新安装
在PowerShell中执行以下命令,彻底清理旧依赖后重新安装:
# 删除node_modules文件夹 rmdir /s /q node_modules # 删除package-lock.json文件 del package-lock.json # 重新安装依赖 npm install
3. 确认Docker环境使用正确Node版本
检查项目的Dockerfile或docker-compose.yml,确保基础镜像指定为node:10.23.0,避免容器内使用其他Node版本:
- Dockerfile示例:
FROM node:10.23.0 # 后续构建步骤...
- docker-compose.yml示例:
services: lafs-api: image: node:10.23.0 # 其他配置...
4. 重新启动容器
执行以下命令重新构建并启动容器:
docker-compose up --build
内容的提问来源于stack exchange,提问作者Val3y
相关产品推荐
相关产品推荐

