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

CircleCI构建Linux Docker镜像遇llhttp-ffi安装失败,Dockerfile是否缺依赖?

解决llhttp-ffi 0.4.0安装失败的问题

针对你遇到的问题,从依赖配置和构建环境两方面排查,给出以下解决方案:

1. 明确锁定ffi版本

虽然Gemfile包含ffi,但bundle可能解析出低于1.0.0的版本,直接在Gemfile中指定符合要求的版本范围:

gem 'ffi', '>= 1.0.0'
# 或者指定稳定的具体版本,比如
# gem 'ffi', '~> 1.15.5'

执行bundle update ffi更新依赖锁文件,确保bundle安装时拉取符合要求的ffi版本。

2. 补充Dockerfile中的系统编译依赖

除了libffi-dev,ffi-compiler需要完整的编译工具链来构建原生扩展,还需要pkg-config来定位libffi库路径。在Dockerfile中添加这些依赖:

RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    pkg-config \
    libffi-dev \
    && rm -rf /var/lib/apt/lists/*

build-essential包含gcc、make等编译工具,是构建Ruby原生扩展的基础依赖。

3. 清理CircleCI的bundle缓存

CircleCI的缓存可能保留了旧的依赖版本,导致冲突。在构建步骤中添加清理缓存的命令:

rm -rf vendor/bundle
bundle install --clean

确保每次构建都基于最新的依赖锁文件安装。

4. 显式添加ffi-compiler依赖

如果bundle自动解析ffi-compiler时出现版本问题,直接在Gemfile中添加:

gem 'ffi-compiler'

执行bundle install让bundle处理其依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:10:35