qemu-x86_64:无法打开“/lib64/ld-linux-x86-64.so.2”:没有这样的文件或目录

2023-12-29

我在 M1 MacOS 上有一个 Rancher Desktop(docker),当我尝试在 dockerfile 下构建时,我收到如下错误。这是我尝试构建图像的命令docker build -t te-grafana-dashboards-toolchain --no-cache .

我尝试更换平台,但其中一些对我有用。我对 M1 的这个平台问题有点迷失,但任何帮助将不胜感激,我做错了什么?造成这种情况的根本原因可能是什么?

Removing intermediate container 70af516d5d6b
 ---> a69229847153
Step 5/6 : RUN GO111MODULE="on" go get github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb; ln -s $(go env GOPATH)/bin/jb /usr/bin/jb
 ---> Running in 13545862fffe
qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory
qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory
Removing intermediate container 13545862fffe

Dockerfile

FROM --platform=linux/amd64 ubuntu:focal
RUN apt update; apt install -y curl jq build-essential python3.8 python3-pip docker-compose jsonnet bison mercurial
RUN ln -s /usr/bin/python3.8 /usr/bin/python
RUN curl -OL https://golang.org/dl/go1.17.linux-amd64.tar.gz; mkdir /etc/golang; tar -xvzf go1.17.linux-amd64.tar.gz -C /etc/golang; ln -s /etc/golang/go/bin/go /usr/bin/go; rm -f go1.17.linux-amd64.tar.gz
RUN GO111MODULE="on" go get github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb; ln -s $(go env GOPATH)/bin/jb /usr/bin/jb
WORKDIR /workspace

顺便说一句,如果这对来到这里的其他人有帮助,我在尝试执行以下操作的 M1 Max MacBook Pro 笔记本电脑上遇到了同样的问题docker build来自公司仓库,这应该是一条相当不错的道路,但我可能是唯一一个拥有 ARM64 M1“Apple Silicon”Mac 的人(这是一家小公司)。然而我发现我的情况的解决方案(好吧,一个解决方案)与OP的解决方案完全相反,那就是添加 --platform=linux/amd64 到 docker 文件的 FROM 行。

Example:

FROM --platform=linux/amd64 ubuntu:20.04

否则,它会使用 ARM64 映像开始,而我并不知道,但后来在 Dockerfile 中,构建尝试安装并执行为 x86_64 编译的代码。通过请求基础镜像来启动构建过程linux/amd64最终基础图像具有/lib64/ld-linux-x86-64.so.2。这可能意味着一切都被模拟为 ARM64 CPU 上的 x86_64qemu-x86_64因此,如果您可以选择从 ARM64 映像启动,并且可以在构建期间在容器内编译任何无法安装为 ARM64 二进制文件的软件,那么当您稍后在基于 M1 的 Mac 上运行容器时,速度可能会更快。对于这种情况,我自己还无法尝试。

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

qemu-x86_64:无法打开“/lib64/ld-linux-x86-64.so.2”:没有这样的文件或目录 的相关文章

随机推荐

  • Java/JSF/Tomcat/Spring - 代理对象与原始对象有不同的方法

    今天我遇到了这个问题 这确实让我烦恼 因为几乎代码已经可以工作了 即使在恢复到旧版本后也停止工作 我正在 Facelets 页面上访问 Spring Bean Spring 将这些对象包装在代理中以使用方面和其他一些东西 问题是 当我尝试访
  • Android中启动SMS意图的防错方法

    在我的 Android 应用程序中 我使用以下代码来启动消息应用程序并填写短信的默认文本 Intent intent new Intent Intent ACTION VIEW intent setData Uri parse sms US
  • Watchkit 新会话不起作用

    我的手表扩展中有两个视图控制器 每当我打电话时 WCSession defaultSession sendMessage applicationData replyHandler NSDictionary reply 我仅收到第一个视图控制
  • 使用 jQuery 根据子属性将样式应用于父级?

    如果元素具有特定属性 如何将样式应用于元素的父元素 这是我正在使用的示例 div div class inner div div class inner div div class inner div div div div class i
  • 匹配除指定字符串之外的所有内容

    我知道以下正则表达式将匹配 红色 绿色 或 蓝色 red green blue 有没有一种简单的方法可以让它匹配所有内容except几个指定的字符串 如果你想确保字符串既不是红色 绿色也不是蓝色 卡斯基的回答 https stackover
  • 在绘图中向每个条形图添加两个文本

    我正在用plotly python 来绘制水平条形图 如下图所示 import plotly express as px fig px bar x prices y Average str round avg price 2 Lowest
  • Spring Boot CORS 错误仅适用于 Multipart POST

    您好 我面临一个特殊问题 我已使用以下配置在 Springboot API 服务器上启用了 CORS Bean CorsConfigurationSource corsConfigurationSource final UrlBasedCo
  • 为什么 Python 3.x 的 super() 如此神奇?

    在Python 3 x中 super http docs python org 3 3 library functions html super可以不带参数调用 class A object def x self print Hey now
  • 在API自动化测试中使用BDD是一个好方法吗?

    我正在编写一个用于 RESTful API 测试自动化的框架 我已经决定使用 REST Assured 我不确定是否 100 确定添加一个层以允许使用特定于领域的语言 如 Gherkin 定义测试 因此添加一个 BDD 框架 如黄瓜 你有什
  • 如何定义枚举项的属性

    我已阅读问题java和C 中Enum的区别 https stackoverflow com questions 2080681 difference of enum between java and c但我还是很困惑 我希望以下内容返回相关
  • 如何动态包含导航属性?

    我有一个小问题 假设有一个这样的实体 public class FirstEntity public int ID get set public string Prop1 get set public string Prop2 get se
  • 为什么 SOAP 参数的顺序在 PHP SOAP 中很重要,以及如何修复它?

    一条评论 http www php net manual en soapclient soapcall php 98348PHP 手册上指出 如果您使用此方法 请记住 参数数组需要是 传入的顺序是 与 SOAP 端点相同的顺序 期望 例如
  • 使用 UpdatePanel 从内容页面更新 MasterPage 上的标签,无需完整回发

    对于这种情况有解决方案吗 我有一个内容页面 其中包含一个 UpdatePanel 和一个组合框 当组合框值更改时 我想更改主页中的标签 所以 对我来说主要的问题是我不想在每个组合框值发生变化时进行完整的回发 有什么技巧可以克服完全回发吗 提
  • 如何在 Backbone.js 中正确使用 HTML5 PushState?

    我正在使用 coenraets 员工名录 http coenraets org directory 作为我的 Backbone 应用程序的起点 我想做的第一件事是更改路由以使用 HTML5 PushState 而不是 hash hash b
  • 运行 Xcode 控制台 [重复]

    这个问题在这里已经有答案了 我想用 Instruments 运行我的 iphone 应用程序来检查内存使用情况 但我也希望能够在运行时看到我的控制台输出 目前没有办法做到这一点吗 您似乎只能在 XCode 本身中启动 Instruments
  • Java程序运行一段时间后变慢

    我有一个java程序 它是一个典型的机器学习算法 通过一些方程更新一些参数的值 for int iter 0 iter lt 1000 iter 1 Create many temporary variables and do some c
  • 用于重载 UI 的 Vaadin 替代方案

    目前我正在基于以下内容编写Web应用程序Vaadin http vaadin com 我对学习周期以及简单的 UI 设计方式感到非常满意 Vaadin 的总体优点是 面向 Java 用户的 本机 UI 编程 组件层次结构 事件侦听器 拖放
  • 将选择设置为范围

    有人可以暗示我在这里可能做错了什么吗 现在我正在有效地尝试执行 Ctrl A 命令来对 vba 中的数据块进行全选 然后我希望将该选择保存为一个范围 以便稍后使用 Dim rngAdData As Range Range A1 Select
  • flutter dart JsonSerialized 带有继承类

    我有以下两个类 其中一个类是从另一个类扩展的 如下所示 JsonSerializable nullable true class Response final String responseCode final String respons
  • qemu-x86_64:无法打开“/lib64/ld-linux-x86-64.so.2”:没有这样的文件或目录

    我在 M1 MacOS 上有一个 Rancher Desktop docker 当我尝试在 dockerfile 下构建时 我收到如下错误 这是我尝试构建图像的命令docker build t te grafana dashboards t