社区讨论

雷竞技网站MikroTik应用
rel
刚刚加入了
主题作者
职位: 3.
加入: 2023年2月2日星期四凌晨1:53

容器不能在arm64 RouterOS上运行l雷竞技

2023年2月21日星期二上午7:34

我有一个自编译的容器,它从alpine构建,可以在M1 macOS docker桌面上成功运行,但不能在arm64 RouterOS上运行。l雷竞技
这个容器的主要用途是运行一个特殊的Linux二进制文件。
我已经在很多情况下进行了测试。下面分别介绍一下。

Alpine-arm64 + glibc +特殊arm64二进制v3 ->在M1 macOS上运行✅
Alpine-arm64 + glibc +特殊arm64二进制v3 ->在RB5009上运行✅
Alpine-arm64 + glibc +特殊arm64二进制v3 ->在hAP ax2上运行✅
Alpine-amd64 + glibc + special amd64 binary v3 ->在CHR上运行✅

一般来说,v3二进制文件在任何设备上的任何arch上运行都没有任何问题。

Alpine-arm64 + glibc +特殊arm64二进制v4 ->在M1 macOS上运行✅
Alpine-arm64 + glibc +特殊arm64二进制v4 ->在RB5009上运行❌
Alpine-arm64 + glibc +特殊arm64二进制v4 ->在hAP ax2上运行❌
Alpine-amd64 + glibc +特殊的amd64二进制v4 ->在CHR上运行✅

一般来说,v4二进制文件在arm64 RouterOS设备上存在运行问题。l雷竞技但它在amd64 RouterOS设备或arm64 macOS设备上没有任何问题。l雷竞技

我想知道下一步该怎么办?
用户头像
Amm0
论坛专家
论坛专家
职位: 1555
加入: 2016年5月1日星期日下午7:12
地点:加州

容器不能在arm64的RouterOS上运行l雷竞技

2023年2月25日星期六下午3:56

不知道具体的arm64特殊的东西。

但我认为有一个更普遍的错误,在/容器并不总是正确地读取“元数据”。最新版本的BuildKit使用码头工人的证明(例如元数据),这是RouterOS不喜欢的。l雷竞技看到viewtopic.php吗?t=192810#p981824

但我不认为如果你“docker save”并使用tar(我怀疑你是这样做的),就会出现这种情况。所以以上可能没有帮助,但如果它在“标准”元数据方面遇到麻烦……我知道你们的“特价”也会受到影响。摆弄一下buildx参数(或podman)可能会有所帮助——看起来,microtik想要它基本…雷竞技网站我在尝试构建多平台图像时遇到了问题:viewtopic.php吗?t=193727#p986366删除任何证明就解决了问题。

在失败的情况下,您得到任何错误吗?它是否提取(例如找到层)?它是否无法以“exec()”格式错误开始?
rel
刚刚加入了
主题作者
职位: 3.
加入: 2023年2月2日星期四凌晨1:53

容器不能在arm64的RouterOS上运行l雷竞技

2023年3月4日星期六凌晨2:05

删除过多引用前一职位;要聪明,报价要聪明,节省网络流量
你说得对。我所有的docker在导入之前都是“docker保存”的。它们都不会直接下载到磁盘中。

在其他一些docker尝试期间,我发现了另一个问题。对于在Docker Desktop上成功运行的dockers,入口点不会在RouterOS上的容器启动上执行。l雷竞技

如果我手动进入容器外壳,执行相同的入口点命令,docker将按预期工作。

你知道如何修复入口点故障吗?
最后编辑:BartoszP2023年3月15日星期三下午3:41,共编辑1次。
原因: 删除过多引用前一职位;要聪明,报价要聪明,节省网络流量
用户头像
Amm0
论坛专家
论坛专家
职位: 1555
加入: 2016年5月1日星期日下午7:12
地点:加州

容器不能在arm64的RouterOS上运行l雷竞技

2023年3月4日星期六凌晨2:35

听起来确实像个bug。

你试过使用——sbom=false——出处=false吗?buildx吗?据我所知,较新的BuildKit不像RouterOS。l雷竞技所以你的问题可能很相关。
rel
刚刚加入了
主题作者
职位: 3.
加入: 2023年2月2日星期四凌晨1:53

容器不能在arm64的RouterOS上运行l雷竞技

2023年3月15日星期三下午2:50

我是用最新的macOS桌面安装的。
代码:选择所有
ERROR:当前构建包不支持认证
最后编辑:BartoszP2023年3月15日星期三下午3:41,共编辑1次。
原因: 删除过多引用前一职位;要聪明,报价要聪明,节省网络流量
用户头像
Amm0
论坛专家
论坛专家
职位: 1555
加入: 2016年5月1日星期日下午7:12
地点:加州

容器不能在arm64的RouterOS上运行l雷竞技

2023年3月15日星期三下午5:26

是的,我忘了你用的是TAR文件,证明都不会出现在那里。我的想法是,由于RouterOS似乎在读取l雷竞技其他元数据时遇到了麻烦,如果在“ARM v4”的映像中有一些不寻常的元数据,可能是类似的原因。

所以我猜问题是你在日志中得到execv()错误,告诉你它是否是二进制格式问题。或者是“v4”在其他地方不起作用的问题,比如在提取过程中——这暗示了元数据。

谁在线?

浏览本论坛的用户:没有注册用户和1个访客