使用Docker 在M1 Mac 上建置Docker映像時桌面上,使用者可能會遇到錯誤訊息「qemu-x86_64:無法開啟'/lib64/ld-linux-x86-64.so.2':沒有這樣的檔案或目錄。」出現此問題的原因是Docker 嘗試使用ARM64 映像檔作為基礎映像,但後來需要為x86_64 架構編譯的二進位檔案。
此問題的根本原因是 M1 Mac 的架構與傳統的 x86_64 架構不同。雖然它支援透過 qemu-x86_64 進行模擬,但 ARM64 基礎映像中缺少所需檔案「/lib64/ld-linux-x86-64.so.2」會導致報告錯誤。
解決方案:
與直覺相反,解決方案是在Dockerfile 中的「FROM」行上明確指定 --platform =linux/amd64:
FROM --platform=linux/amd64 ubuntu:focal
這指示Docker 使用x86_64基礎映像,確保必要的檔案在建置過程中出現。透過從 x86_64 映像開始,建置過程可以在不需要模擬的情況下繼續進行,從而解決找不到檔案的錯誤。
或者,使用者可以考慮建立自己的基於 ARM64 的基礎映像,並在建置期間的容器。但是,此選項可能更適合預先建置 ARM64 二進位檔案不可用的特定場景。
以上是為什麼我的 Docker 建置在 M1 Mac 上失敗並顯示'qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2'”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!