M1 Mac で Docker イメージをビルドしようとすると no match for platform in manifest が出る
TL;DR
docker build -t name --platform linux/amd64 .
背景
FROM mysql:5.7
FROM mysql:5.7
M1 Mac上でこれだけ書いた Dockerfile
を docker 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を使っていたので無駄にハマりました。ググってもヒットしなかったので同じトラップにハマってる人の助けになればと思い備忘録的に記録することにしました。
Author And Source
この問題について(M1 Mac で Docker イメージをビルドしようとすると no match for platform in manifest が出る), 我々は、より多くの情報をここで見つけました https://qiita.com/ktnyt/items/cefcb424a75f536f8422著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .