Mac正常的Jest集成测试在Bitbucket Pipelines因缺失libcurl.so.4报错
解决MongoMemoryServer在Bitbucket Pipelines(node:18-slim)中启动失败(缺少libcurl.so.4)的问题
问题核心是node:18-slim属于轻量级Debian镜像,默认未安装MongoMemoryServer下载MongoDB二进制包所需的libcurl系统依赖,而Mac本地环境自带完整系统库,因此不会触发该错误。
解决方案:在Pipelines中补充安装系统依赖
修改你的bitbucket-pipelines.yml配置,在执行pnpm安装依赖和测试前,先通过apt-get安装缺失的库:
image: node:18-slim pipelines: default: - step: name: Run Integration Tests script: # 安装核心依赖及补充SSL相关库 - apt-get update && apt-get install -y --no-install-recommends libcurl4 libssl-dev # 启用corepack并安装依赖 - corepack enable - pnpm install # 执行测试 - pnpm test
关键说明
libcurl4是直接解决"无法打开libcurl.so.4"错误的核心依赖,MongoMemoryServer启动时需要它下载对应MongoDB二进制文件libssl-dev为可选补充,避免部分场景下MongoDB运行时出现SSL相关依赖缺失问题--no-install-recommends用于减少不必要的依赖安装,保持镜像轻量化
验证步骤(可选)
若问题仍存在,可在脚本中加入检查命令确认libcurl是否安装成功:
ldconfig -p | grep libcurl
执行后应输出包含libcurl.so.4的条目,说明依赖已正确安装。
内容的提问来源于stack exchange,提问作者Ikram Ud Daula
相关产品推荐
相关产品推荐

