debian docker 上的 GLIBC 不兼容

2023-12-01

我正在尝试构建一个以 rust-rocksdb 作为依赖项的 Rust 应用程序。

使用最新的 rust docker 映像进行编译,然后将二进制文件移动到 debian。 这就是我的 Dockerfile 的样子

FROM rust:1.61 as builder

RUN USER=root cargo new --bin fbrust
WORKDIR ./fbrust
COPY ./Cargo.toml ./Cargo.toml
COPY ./Cargo.lock ./Cargo.lock

RUN apt-get update \
    && apt-get install -y ca-certificates tzdata libclang-dev \
    && rm -rf /var/lib/apt/lists/*

RUN cargo build --release
RUN rm src/*.rs

ADD . ./

RUN rm ./target/release/deps/fbrust*
RUN cargo build --release


FROM debian:buster-slim
ARG APP=/usr/src/app

EXPOSE 5005

ENV TZ=Etc/UTC \
APP_USER=appuser

RUN groupadd $APP_USER \
    && useradd -g $APP_USER $APP_USER \
    && mkdir -p ${APP}

COPY --from=builder /fbrust/target/release/fbrust ${APP}/fbrust

RUN chown -R $APP_USER:$APP_USER ${APP}

USER $APP_USER
WORKDIR ${APP}

CMD ["./fbrust"]

我现在收到此错误:

./fbrust: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./fbrust)
./fbrust: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.30' not found (required by ./fbrust)
./fbrust: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by ./fbrust)

首先,我很困惑为什么我看到 2.29 和 2.30 都需要。

我检查了容器内,确实有 2.28

||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  libc-bin       2.28-10      amd64        GNU C Library: Binaries

是否有任何其他图像可以用来实现兼容性,或者我可以得到关于我应该尝试哪些依赖项/设置的提示吗?


如果你看一下清单Debian 版本,截至撰写本文时,Debian 10“Buster”已落后一个版本,Debian 11“Bullseye”是当前发布的稳定版本。您还可以查看libc6 软件包列表并看到“Buster”包含 libc6 2.28,“Bullseye”包含 libc6 2.31(均带有本地补丁)。

因此,对于您的设置,应该可以将最终映像更改为较新版本的 Debian,例如

FROM debian:bullseye-stable # one newer than buster
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

debian docker 上的 GLIBC 不兼容 的相关文章

随机推荐

  • 播放内存流中的视频

    到目前为止找不到任何令人满意的答案 我正在开发一个 C WinForms NET3 5 应用程序 该应用程序需要从数据库 BLOB 加载视频文件并在应用程序窗口内播放 数据库是本地文件 不涉及服务器 我不认为将文件保存到硬盘驱动器是一个好的
  • CodeigniterWhere 子句

    不知怎的 对我来说构建这样的查询有点困难 给我所有链接名称不为空的导航条目 query this gt db gt get where navigation array linkname NULL 给我错误 where 子句 中的未知列 0
  • 在ArrayBlockingQueue中,为什么将final成员字段复制到局部final变量中?

    In ArrayBlockingQueue 所有需要锁的方法将其复制到本地final调用前的变量lock public boolean offer E e if e null throw new NullPointerException f
  • 在 shell 脚本中使用expect

    我需要传递两个参数给expect 第一个是要执行的命令 第二个是密码 这是我的期望 sh usr bin expect spawn lrange argv 0 0 expect password send lindex argv 1 int
  • OpenSSL 内存泄漏?

    我使用以下代码来检查签名 为了简单起见 公钥 消息和签名在中初始化main include
  • 在启动屏幕期间加载 MainActivity

    我目前有一个splashScreenActivity这需要用户按button去MainActivity 是否可以加载全部内容MainActivity WITHOUT MainActivity的 UI 出现在顶部splashScreenAct
  • 防止“点击”事件多次触发+淡入淡出问题

    早安各位 对我正在制作的简单 jQuery 画廊有疑问 它允许用户通过一些按钮循环浏览图像集合 同时在计时器上轮换这些图像 我的问题是 用户可以多次单击该按钮 这会将动画的淡入淡出排队并一遍又一遍地重复 例如用户点击按钮 5 次 gt 同一
  • 在 mac 上使用 gdb 在 eclipse 中调试 - 无法执行 MI 命令:-exec-run

    我有 Eclipse Kepler 和简单的 HelloWorld C 程序 我想在其中学习如何调试 C 程序 单击调试按钮时 我收到以下错误消息 最终启动顺序错误 执行MI命令失败 exec 运行 来自调试器后端的错误消息 无法找到进程
  • 需要 C# 构造函数语法解释

    有人可以向我解释以下构造函数语法吗 我以前没有遇到过它 并在同事代码中注意到它 public Service this Service DoStuff DoMoreStuff 它链接到同一个类中的另一个构造函数 基本上任何构造函数都可以ei
  • WP7 中的 HttpWebRequest 超时不适用于计时器

    由于 WP7 HttpWebRequest 不支持超时 因此我使用计时器来实现该功能 下面是一个例子 我从 UI 表单调 用 GetConnection 但在计时器时间结束之前 ReadCallback 永远不会执行 一旦计时器停止 就会触
  • PHP中的动态静态方法调用?

    请有 PHP 经验的人帮忙解决以下问题 在我的代码中的某个地方 我调用了非实例化类中的公共静态方法 result myClassName myFunctionName 但是 我希望有许多这样的类 并根据用户的语言动态确定正确的类名 换句话说
  • UISearchDisplayController 搜索多个数组

    目前 我正在使用表示名称 ID 等的多个数组的内容填充我的 tableviewcells 当我开始使用搜索显示控制器时 我的问题就出现了 我有一个数组 其中包含名称列表 ID 列表 条形码列表和别名列表 当用户在搜索栏中输入内容时 我需要能
  • Qt:像 Eclipse 一样拖放小部件以实现任意布局(拆分)

    我知道停靠小部件 拆分器等 我仍然想知道是否可以像 Eclipse 中那样创建灵活的拆分系统 当任何小部件根据拖动过程中光标的位置保持垂直或水平拆分时 例如 第一个小部件A占据了整个QMainWindow 第二个B首先在选项卡中打开 所以它
  • 这些数组有什么区别?

    var foo var bar new Array var another 另外 是否可以添加到foo像这样 foo obj new Date var foo foo是一个对象字面量 var bar new Array bar是一个通过初始
  • Yii2 中按字段排序

    我遇到了这个问题 但没有找到 yii Instrument 的任何解决方案 有人知道如何解决这个问题吗 最终 我使用了这个糟糕的代码 params foreach recipeIds as i gt recipeId params id i
  • 打印出 linq 查询的结果

    我正在使用 asp net core 实体框架 我使用 linq 组合三个表 User Products 和 User Had Products 我的查询似乎工作正常 我遇到的问题是打印出查询结果 我可以打印出整个对象 但无法使用点表示法打
  • Direct3D11:翻转 ID3D11Texture2D

    我执行 Direct3D 后台缓冲区的捕获 当我下载像素时 图像帧沿其垂直轴翻转 复制资源或创建目标时是否可以 告诉 D3D 翻转帧ID3D11Texture2D 我是这样做的 我将帧缓冲区复制到其中的纹理是这样创建的 D3D11 TEXT
  • JSON序列化时如何本地化?

    我已经奋斗了几个小时了 但没有好的结果 我正在尝试使用 NET JSON 序列化器将 JSON 从 UI 来回转换为对象 小数会出现问题 因为我的文化标准使用 作为小数分隔符而不是 我尝试过实现自定义转换器 请参阅this问题 没有好的结果
  • Fortran 符号不在加载表中(无法在 R 中调用加载的符号)

    我正在尝试使用 Absoft Pro Fortran 13 0 3 64 位 构建 Fortran DLL 以便在 Windows 7 64 位上的 R 中使用 这是我的文件 mycalc f 这是一个愚蠢的示例 只是为了测试功能 subr
  • debian docker 上的 GLIBC 不兼容

    我正在尝试构建一个以 rust rocksdb 作为依赖项的 Rust 应用程序 使用最新的 rust docker 映像进行编译 然后将二进制文件移动到 debian 这就是我的 Dockerfile 的样子 FROM rust 1 61