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 サイトの他の関連記事を参照してください。