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

基于Alpine Linux的Docker镜像无法执行绝对路径的Rust可执行文件

解答

这个错误的本质是C库兼容性问题:

  • Ubuntu等主流发行版使用的是glibc,你编译的Rust程序默认依赖glibc
  • Alpine Linux使用的是轻量的musl libc,和glibc不兼容,系统找不到程序依赖的库文件,才会抛出这个容易误导的"文件不存在"错误

有两种解决思路:

方案1:换用glibc系基础镜像

把Dockerfile的基础镜像换成Ubuntu或Debian这类使用glibc的发行版,比如:

FROM ubuntu:latest

WORKDIR /app

COPY hello_world /app/

ENTRYPOINT ["/app/hello_world"]

(注:本地编译的文件已有执行权限的话,不需要RUN chmod +x,COPY会保留权限)

方案2:编译musl兼容的可执行文件

如果坚持要用Alpine,需要编译针对musl的Rust程序:

  1. 安装musl编译目标:
rustup target add x86_64-unknown-linux-musl
  1. 编译时指定目标:
cargo build --release --target x86_64-unknown-linux-musl
  1. 将编译产物target/x86_64-unknown-linux-musl/release/hello_world替换项目目录里的原文件,再重新构建镜像

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:12:41