ホームページ > バックエンド開発 > Golang > M1 Mac で Docker ビルドが「qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2'」で失敗するのはなぜですか?

M1 Mac で Docker ビルドが「qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2'」で失敗するのはなぜですか?

DDD
リリース: 2024-12-17 11:15:26
オリジナル
177 人が閲覧しました

Why Does My Docker Build Fail with

「qemu-x86_64: '/lib64/ld-linux-x86-64.so.2' を開けませんでした: そのようなファイルまたはディレクトリはありません」Docker のエラーM1 Mac 上でビルドする

Docker イメージをビルドする場合Docker Desktop を使用している M1 Mac では、「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」が存在しないため、エラーが報告されます。

< h3>解決策:

直観に反して、解決策は次のとおりです。 Dockerfile の "FROM" 行で --platform=linux/amd64 を明示的に指定します:

FROM --platform=linux/amd64 ubuntu:focal
ログイン後にコピー

これにより、Docker に x86_64 ベース イメージを使用するよう指示し、必要なファイルがビルドプロセス中に存在します。 x86_64 イメージから開始することで、エミュレーションを必要とせずにビルド プロセスを続行し、ファイルが見つからないエラーを解決できます。

あるいは、ユーザーは独自の ARM64 ベースのベース イメージを構築し、必要なソフトウェアを手動でコンパイルすることを検討することもできます。ビルド時のコンテナ。ただし、このオプションは、事前に構築された ARM64 バイナリが利用できない特定のシナリオに適している可能性があります。

以上がM1 Mac で Docker ビルドが「qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2'」で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート