问题标签 [multiarch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4054 浏览

docker - 如何在创建清单时修复来自 Docker Hub 的“拒绝:请求访问资源被拒绝”错误

我正在尝试为我的 docker hub 存储库创建一个清单,以便我拥有一个多平台图像。

我的程序如下:

  1. 我首先创建了一个空存储库并将两个图像推送到其中,一个用于 amd64,一个用于 arm64。这些图像可以在这里预览:https ://hub.docker.com/repository/docker/shadash/docker-multiarch-glusterfs-plugin
  2. 我使用 CLI 登录到我的 docker hub 帐户。我尝试了以下方法,响应是“登录成功”:
  1. 我尝试创建一个清单:

结果是:

错误:拒绝:请求的资源访问被拒绝未经授权:需要身份验证

  1. 我尝试使用清单工具(https://github.com/estesp/manifest-tool

someimage.yaml:

结果:

FATA [0001] 检查图像“shadash/docker-multiarch-glusterfs-plugin:x86_64”失败并出现错误:错误:拒绝:请求的资源访问被拒绝未经授权:需要身份验证

因此,问题似乎与我现有图像的检查有关。但是,我可以很好地下载和安装这些插件(在 3 台不同的机器上测试),并且当我启动使用此卷驱动程序的堆栈时它们也可以工作:

我真的被困在这里,我不知道为什么我不能根据这些图像创建清单图像。我已成功为 jenkins 创建了清单映像,请参阅https://hub.docker.com/repository/docker/shadash/docker-multiarch-jenkins

0 投票
0 回答
91 浏览

docker - Multi-Arch Dockerfile - 有没有办法根据架构选择要复制的源

是的,RUN yum install两者都适用,但如果你想执行COPY gosu /usr/bin/gosu,有没有办法根据目标架构选择性地复制 gosu-arm64 和 gosu-armv7 ?

我看了看,没有找到任何东西,现在正在寻找臭鼬解决方案......

0 投票
1 回答
590 浏览

docker - 使用 docker-compose 构建两个不同标记的 docker 镜像

我目前正在使用 Docker 和 K8s 部署 Java 应用程序。当我使用 Raspberry Pi Kubernetes 集群时,我想生成两个图像,一个用于 x86 平台,一个用于 arm32v7(用于在 Raspberry 集群上进行测试)。目标是使用一个 Dockerfile 生成两个不同标记的 docker 镜像,并将生成的镜像推送到 Docker Hub。我使用以下 Dockerfile。

我的docker-compose.yml样子是这样的:

使用docker build .工作,但结果是两个未命名的、未标记的图像。我尝试了很多事情,比如硬编码 dockerfile 的路径等等。尽管付出了努力,但我得到了一个非常未定义的错误:

任何想法都值得赞赏。

编辑:我从这里得到了这个想法

0 投票
2 回答
3760 浏览

docker - GitLab CI/CD:构建多架构 Docker 镜像

我想要一种在 GitLab 运行器中构建多架构 Docker 映像的简单方法。简单来说,我的意思是我只需要在我的项目中添加一个 .gitlab-ci.yml 就可以了。

这是我写的 .gitlab-ci.yml。它使用 buildx 构建多架构映像,然后将其推送到 GitLab 注册表:

问题是 linux/arm64 平台不可用。

以下是我构建 cl00e9ment/buildx 映像的方式(强烈灵感来自snadn/docker-buildx):

这是 Dockerfile:

...添加这里是用于构建和推送 cl00e9ment/buildx 映像的 .gitlab-ci.yml 文件:

那么发生了什么?

  • 在构建结束时,在 Dockerfile 中,我运行docker buildx inspect --bootstrap以列出可用平台。它给linux/amd64, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6. 所以一切都很好。
  • 之后,我再次运行它(就在构建之后和推送之前),它仍然给出linux/amd64, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6.
  • 但是,在测试阶段,当在干净的环境中从 Docker Hub 新下载映像时,它会提供linux/amd64, linux/386.

为什么?

0 投票
1 回答
5965 浏览

sql - 由于“未满足的依赖项”,无法在 Ubuntu 上安装 SQL Server 命令行工具

按照文档成功安装Sql Server后,无法在 Ubuntu 20.04 上安装SQL Server 命令行工具。努力导致了以下命令和结果:

好的

deb [arch=amd64] https://packages.microsoft.com/ubuntu/18.04/prod仿生主

点击:1 http://dl.google.com/linux/chrome/deb stable InRelease
获取:2 http://security.ubuntu.com/ubuntu focus-security InRelease [107 kB]
点击:3 http://x .archive.ubuntu.com/ubuntu焦点 InRelease
Hit:4 http://x.archive.ubuntu.com/ubuntu focus-updates InRelease
Hit:5 http://x.archive.ubuntu.com/ubuntu focus-backports InRelease
命中:6 ...包。微软。com/ubuntu/18.04/mssql-server-2019 仿生 InRelease
Hit:7 ... 包。微软。com/ubuntu/20.04/prod 焦点 InRelease
Hit:8 ... 下载。去吧 组织发布
命中:9 ...包。微软。com/ubuntu/18.04/prod 仿生 InRelease 获取:10 ... 安全性。Ubuntu的。com/ubuntu focus-security/main amd64 DEP-11 元数据 [21.3 kB]
获取:11 ... 安全性。Ubuntu的。com/ubuntu focus-security/universe amd64 DEP-11 元数据 [31.5 kB]
在 17 秒内获取 160 kB (9,288 B/s)
读取包列表...完成

正在读取包列表...完成构建依赖关系树
正在读取状态信息...完成 mssql-tools 已经是最新版本(17.5.2.1-1)。某些软件包无法安装。这可能意味着您请求了一种不可能的情况,或者如果您使用的是不稳定的发行版,一些必需的软件包尚未创建或已从 Incoming 中移出。以下信息可能有助于解决这种情况:

以下软件包具有未满足的依赖关系: mssql-tools : Depends: msodbcsql17 (>= 17.3.0.0) 但不会安装 unixodbc-dev : Depends: unixodbc (= 2.3.7) Depends: odbcinst1debian2 (= 2.3.7 ) 但它不会被安装 E: 无法纠正问题,您持有损坏的软件包。

我尝试按照依赖失败树手动安装未满足的依赖项,但在最后一步安装失败:

正在读取包列表...完成 构建依赖关系树
正在读取状态信息...完成 包 multiarch-support 不可用,但被另一个包引用。这可能意味着该软件包丢失、已过时或只能从其他来源获得

E: 包 'multiarch-support' 没有安装候选

您将如何解决这些问题以最终安装命令行?

0 投票
1 回答
8260 浏览

docker - 在 ARM 上构建 X86 docker 映像?

我已经在构建 .NET Core 应用程序的ARM设备上设置了构建管道。构建管道的最后一步是将编译后的 .NET Core 应用程序存储在 docker 映像中。

是否可以将应用程序存储在X86的 .NET Core 运行时映像中?

我希望 .NET Core 应用程序不关心系统架构,只要部署了 .NET 框架。并且那个 docker 不需要启动 X86 镜像来生成新的镜像:

0 投票
1 回答
799 浏览

docker - docker manifest create annotate and push in a script

我有 DockerHubx86_64为我的项目构建映像。图像具有以下命名:myname/project:version_architecture; 比如foo/bar:1.0.0_x86_64

然后我aarch64在 RPi4: 上构建图像foo/bar:1.0.0_aarch64,然后将其推送到 DockerHub。

现在我想要一个包含它们的清单,以便我可以foo/bar:1.0.0在任何地方使用它并且它可以工作。

AFAIK,以下命令应该可以工作(在 RPi 上运行):

但由于某种原因,该annotate步骤有时会失败:

而以下解决方法(通常)可以代替:

我错过了什么吗?

0 投票
1 回答
106 浏览

raspberry-pi - 如何配置 Clion 在启动前运行 gdb 命令?

我可以使用vscode配置说远程调试 RapberryPi 应用程序

CLion 中的等效设置是什么?我需要set architecture arm_any在连接后运行gdb-multiarch

0 投票
1 回答
155 浏览

docker - Docker linuxserver.io/jellyfin multiarch 207:“执行格式错误”

我有一个问题,我不知道去哪里寻找问题。我正在运行 debian:buster 并且正在尝试将其设置为 jellyfin 服务器。

我添加了必要的架构(amd64)。

我根据 linuxserver.io/jellyfin 文档中的示例创建了一个 docker-compose 文件。

当我这样做时sudo docker-compose up,容器正在尝试重新启动并且容器的日志显示:

standard_init_linux.go:207: exec user process caused "exec format error"

当我查看守护程序的日志时,它具有以下内容:

我在网上看到有人说它与架构有关,我也看到有人建议它与 dockerfiles 中的入口点有关。我已经尝试过使用谷歌搜索,但我缺少有效执行此操作的必要参考框架。

这里出了什么问题?

0 投票
1 回答
418 浏览

docker - Docker buildx mulitarch armv6

我需要的:

x86_64 机器上用于 raspberry pi 零的测试容器,可与armv6l的 qemu 仿真一起使用。

到目前为止我得到了什么:

带有测试代码的 Dockerfile

使用以下命令构建图像:

docker buildx build --platform linux/arm/v6 -t test/hello --push .

在为 linux/arm/v6 上传和构建后,我尝试使用以下命令运行它:

我已经像他们在 github 页面上所说的那样设置了 qemu 和 binfmt: https ://github.com/docker/buildx#building-multi-platform-images

我不明白为什么输出是 armv7l,因为我做了所有事情来制作 armv6l 图像。不知道是否需要对 docker 或者 qemu 本身进行调整。我对 docker 的 buildx 系统以及如何在 qemu 下模拟容器非常陌生,所以如果有人能帮助我解决这个问题,我将非常感激。

编辑:

多亏了Peter,容器才知道被迫使用 armv6l。