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

Docker构建报错Unable to locate package libjemalloc1的排查与解决问询

问题原因

你使用的ruby:2.6.5-slim-buster基础镜像对应的Debian 10(Buster)版本官方源已经移除了libjemalloc1包,该版本默认提供的jemalloc runtime包为libjemalloc2,因此会触发找不到包的报错。


验证包是否存在的方法

直接启动对应基础镜像的交互容器,在容器内搜索源内可用包即可:

  1. 启动容器命令:
docker run --rm -it ruby:2.6.5-slim-buster bash
  1. 容器内执行搜索命令:
apt update && apt search libjemalloc

返回结果会展示所有源内可用的jemalloc相关包,即可确认libjemalloc1是否存在,以及当前可用的包版本。


可行解决方案

推荐直接使用Debian Buster源提供的libjemalloc2,修改Dockerfile配置即可,改动最小且稳定性有保障:
修改后的完整Dockerfile如下:

FROM ruby:2.6.5-slim-buster

RUN apt-get update && apt-get install -y --no-install-recommends libjemalloc2 && rm -rf /var/lib/apt/lists/*

ENV LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2

注意:除了替换安装的包名,还需要同步修改LD_PRELOAD对应的so文件版本号,否则jemalloc无法正常预加载。

验证jemalloc是否生效

镜像构建完成后,启动容器执行以下命令即可验证是否加载成功:

ruby -r rbconfig -e "puts RbConfig::CONFIG['MAINLIBS']"

如果输出内容中包含jemalloc字段,说明集成成功。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:27:04