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