无法在arm64上启动完整的colima和docker引擎作为x86_64

问题描述 投票:0回答:1

上个月我花了相当多的时间试图弄清楚如何在我的 Mac Pro M2 Max 上以 x86_64 运行 colima 和 docker 引擎。

一切都来自 dockerfile-maven-plugin 版本 1.4.13 缺少的兼容架构(只有“i386,x86_64”),如下所述:texttexttext

这个插件目前是硬编码的,我无法将其更改为任何其他插件。在公司我们使用x86_64 cpu arch PC。但相反,当我尝试使用上述插件构建图像时,我想使用我的 Mack Book 来实现此目的

我尝试过以下方法

场景一:

我已经安装了homebrew,然后安装了:colima 和 docker 之后,我使用这个参数 --arch x86_64 启动 colima,一旦我 ssh 到虚拟机,我可以看到它采用 x86_64 架构。到目前为止一切顺利,但我坚持以相同的架构启动 docker 引擎。它默认以 darwin/arm64 启动

场景2:

我已经卸载了arm64的Homebrew并安装了rosetta。之后,我继续安装 x86_64 Homebrew: arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

然后我将 docker 引擎安装为: arch -x86_64 /usr/local/bin/brew install docker ,这样,它就以 darwin/amd64 (rosetta) 启动,这就是我想要实现的目标。我也以同样的方式安装了 colima (arch -x86_64 /usr/local/bin/brew install colima)。但是......当我尝试启动 colima 时,我收到此错误消息:

FATA[0000] limactl is running under rosetta, please reinstall lima with native arch 
FATA[0000] lima compatibility error: error checking Lima version: exit status 1 

即使这个文字也没有多大帮助。

一种解决方案可能是运行适用于arm64 arch的Homebrew的本机安装,一旦我使用--arch x86_64启动colima,就可以在VM内安装docker引擎(默认情况下有Ubuntu操作系统)。在虚拟机内部,我可以将配置添加为 /etc/docker/daemon.json 并在里面放置:

{"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]}
。稍后,我将确保将 =tcp://localhost:2375 env 变量添加到我的例如中MacOS 上的 .zshrc 文件并获取它。

通过这种方式,我将在虚拟机内运行 docker 引擎,该引擎将暴露给我的 Mac 终端,并且我可以运行我的构建。

还有其他人获取类似问题或有更好的解决方案吗?

x86-64 arm64 docker-engine
1个回答
0
投票

一切都来自 dockerfile-maven-plugin 版本 1.4.13 缺少的兼容架构(只有“i386,x86_64”),如下所述:文本,文本和文本

这个插件目前是硬编码的,我无法将其更改为任何其他插件。在公司我们使用x86_64 cpu arch PC。但相反,当我尝试使用上述插件构建图像时,我想使用我的 Mack Book 来实现此目的

您可以在 pom 文件中覆盖依赖项:

                <plugin>
                    <groupId>com.spotify</groupId>
                    <artifactId>dockerfile-maven-plugin</artifactId>
                    <version>1.4.6</version>
                    <dependencies>
                        <dependency>
                            <groupId>com.github.jnr</groupId>
                            <artifactId>jnr-unixsocket</artifactId>
                            <version>0.38.14</version>
                        </dependency>
                    </dependencies>
                </plugin>

更多详情请参阅。 https://stackoverflow.com/a/74602916/1810962

我已经安装了自制程序,然后安装了:colima 和 docker 之后,我使用这个参数 --arch x86_64 启动 colima,一旦我 ssh 到虚拟机,我可以看到它具有 x86_64 架构。到目前为止一切顺利,但我坚持以相同的架构启动 docker 引擎。它默认以 darwin/arm64 启动

我看不懂这篇文章。 VM 应运行 x86_64,以便 docker 引擎将使用它。您是否覆盖了 docker 平台环境变量,例如:

export DOCKER_DEFAULT_PLATFORM=linux/arm64

如果是这样,请摆脱它。

© www.soinside.com 2019 - 2024. All rights reserved.