amd64架构下使用Oracle instantclient构建docker镜像的问题 MAC m1 m2

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

我知道 Oracle Instant Client 尚不兼容 MAC amd64 架构,但也许有人可以指导我正确的方向。

我正在尝试重建使用 oracle-instantclient-basiclite-21.4.0.0.0-1.el8.x86_64.rpm 的 Docker 映像。

我上次运行命令的时间

docker build -t us.icr.io/mynamespace/myimage:version .
它是在 x86 架构 MAC 上执行的。现在我已经更新到 M1,我遇到以下错误:

4.925 oracle-instantclient-basiclite-21.4.0.0.0-1.el8.x86_64.rpm is for architecture amd64 ; the package cannot be built on this system
------
Dockerfile:25
--------------------
  23 |     RUN wget https://...theurltotherpmrepo.../oracle-instantclient-basiclite-21.4.0.0.0-1.el8.x86_64.rpm
  24 |     RUN apt install alien libaio1 -y
  25 | >>> RUN alien -i oracle-instantclient-basiclite-21.4.0.0.0-1.el8.x86_64.rpm
  26 |     RUN sh -c 'echo /usr/lib/oracle/21/client64/lib > /etc/ld.so.conf.d/oracle.conf'
  27 |     RUN ldconfig
--------------------
ERROR: failed to solve: process "/bin/sh -c alien -i oracle-instantclient-basiclite-21.4.0.0.0-1.el8.x86_64.rpm" did not complete successfully: exit code: 2

我已经用 Rosetta 尝试过,但遇到了同样的错误。

我现在能想到的唯一解决方案是将构建过程移至云端。 是否有任何解决方法,或者不使用外星人安装 Oracle Instant Client 的其他方法?

提前致谢!

oracle docker macos x86-64
1个回答
0
投票

我不知道安装 rpm 文件的具体细节,但一般来说,这完全取决于您的 docker 主机和容器的架构。 我假设您想在运行 ARM 架构 Linux 的容器中安装 Oracle 即时客户端。 Docker 本身使用 Apple Silicon 在 macOS 上运行。在此配置中,您需要在 Linux ARM 容器中使用适用于 ARM 架构的 OIC。另请注意,您只需下载包含所有所需 OIC 文件的 zip 文件,然后提取并复制它们即可。

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