🔍
docker build時に no match for platform in manifest: not found エラー
概要
Macにて、CentOS 6
のdockerイメージをdocker-compose up --build -d
で実行したところ、下記のエラーが表示されました。
% docker-compose up --build -d
Compose can now delegate builds to bake for better performance.
To do so, set COMPOSE_BAKE=true.
[+] Building 1.8s (2/2) FINISHED docker:colima
=> [apache-centos6 internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 1.31kB 0.0s
=> ERROR [apache-centos6 internal] load metadata for docker.io/library/centos:centos6.10 1.7s
------
> [apache-centos6 internal] load metadata for docker.io/library/centos:centos6.10:
------
failed to solve: centos:centos6.10: failed to resolve source metadata for docker.io/library/centos:centos6.10: no match for platform in manifest: not found
%
環境
- OS: Mac M3
- docker(colimaで実行)
- colima: 0.8.1
- docker: 28.1.1
- docker-compose: 2.36.0
原因
既定では、Buildx で実行されるビルドは、コンピューターに一致するアーキテクチャのイメージをビルドします。
Mac M3でdocker build
したため、M3のCPUアーキテクチャであるARM
で実行されたことが原因でした。
そのため、docker build
時にplatform
オプションで利用したいCPUアーキテクチャを指定する必要がありました。
解決策
docker-compose.yml
ファイルにて、platform: linux/x86_64
の一文を追記しました。
services:
apache-centos6:
platform: linux/x86_64
Discussion