61
24

More than 1 year has passed since last update.

M1 Mac で Docker イメージをビルドしようとすると no match for platform in manifest が出る

Last updated at Posted at 2021-02-17

TL;DR

docker

docker build -t name --platform linux/amd64 .

docker compose

services の該当コンテナ定義に以下を追記。

services:
  db:
    # 略
    platform: linux/amd64

背景

FROM mysql:5.7

M1 Mac上でこれだけ書いた Dockerfiledocker build -t my_mysql . でビルドしようとすると以下のエラーが出ます。

failed to solve with frontend dockerfile.v0: failed to create LLB definition: no match for platform in manifest sha256:853105ad984a9fe87dd109be6756e1fbdba8b003b303d88ac0dda6b455f36556: not found

docker pull --platform linux/amd64 mysql:5.7 && docker run -it --rm mysql:5.7 は正常に動作するのでなぜ?と思っていたのですがビルド時にも platform を指定する必要があったようです。考えてみれば当たり前ですし後から振り返ると対策もtrivialなんですがマルチCPUアーキテクチャを意識せずにボケっとDockerを使っていたので無駄にハマりました。ググってもヒットしなかったので同じトラップにハマってる人の助けになればと思い備忘録的に記録することにしました。

61
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
61
24