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

Mac下Docker部署Jenkins执行Maven命令报错:找不到/lib/ld-linux-aarch64.so.1

解决Jenkins Pipeline报错"Could not open '/lib/ld-linux-aarch64.so.1': No such file or directory"

问题根源

你的Mac是M系列ARM架构(aarch64),但使用的jenkins/jenkins:2.346.2-jdk11默认是x86_64架构的镜像。在x86镜像环境下,安装的JDK/Maven如果与架构不匹配,就会出现找不到对应链接器的错误——x86程序需要的链接器是ld-linux-x86-64.so.2,而系统在找ARM架构的/lib/ld-linux-aarch64.so.1,二者不兼容导致报错。

解决步骤

1. 更换为ARM架构的Jenkins基础镜像

修改你的Dockerfile,把基础镜像替换为支持arm64的版本:

FROM jenkins/jenkins:2.346.2-jdk11-arm64v8
USER root
RUN curl -sSL https://get.docker.com/ | sh
RUN usermod -a -G docker jenkins
USER jenkins
COPY plugins.txt /usr/share/jenkins/ref/plugins.txt
RUN jenkins-plugin-cli --plugin-file /usr/share/jenkins/ref/plugins.txt
COPY seedJob.xml /usr/share/jenkins/ref/jobs/seed-job/config.xml
ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false

重新构建并运行容器:

docker build -t jenkins-arm .
docker run -d -p 8080:8080 -p 50000:50000 jenkins-arm

2. 确保Jenkins内的JDK/Maven匹配ARM架构

进入Jenkins后台的「全局工具配置」:

  • 添加JDK时,选择Adoptium等厂商提供的ARM64架构OpenJDK 17安装包,或让Jenkins自动安装时确认下载源适配arm64
  • 添加Maven时,同样选择ARM架构的二进制包,或确认自动安装的版本适配当前容器的arm64架构

3. 临时方案:开启Docker Rosetta模拟(不换镜像时使用)

如果不想更换镜像,可通过Docker的Rosetta模拟让x86程序在ARM Mac上运行:

  • 打开Docker Desktop设置,进入「Features in development」
  • 勾选「Use Rosetta for x86/amd64 emulation on Apple Silicon」
  • 重启Docker后,重新构建并运行你的Jenkins容器

验证

修改完成后,重新运行你的Pipeline,执行mvn --version即可正常返回Maven版本信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:25:30