3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Docker/Docker Compose】no matching manifest for linux/arm64/v8への対処法

Posted at

こんにちは。
Dockerを学び始め、Docker ComposeでRails/MySQLのアプリケーションを構築した際にエラーに遭遇したので、対処法をこちらにアウトプットしていきます。

尚、「それは違うよ」など指摘箇所がございましたら
ご教授いただけますと幸いです。

:boy_tone2:対象読者

  • ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries に悩まされているApple siliconをお使いの方。

:computer:環境

まずは私の開発環境について記載します。

  • MacBook Air(M1, 2020) Monterey 12.2.1
  • Docker Client 20.10.12
  • Docker Server 20.10.12
  • docker-compose version 1.29.2

:pushpin:結論

お忙しい方向けに先に結論を述べておきます。
いくつか方法はあるみたいです。

platform: linux/x86_64docker-compose.yml に追加。

docker-compose.yml
  db:
    # 以下を追加
    platform: linux/x86_64
    image: mysql:8.0
    command: --default-authentication-plugin=mysql_native_password

参考: M1 Macでno matching manifest for linux/arm64/v8が発生した

FROM mysql/mysql-server:latestDockerfile に追加。

Dockerfile
FROM mysql/mysql-server:latest

参考:DOCKER COMMUNITY FORUMS

上記の違いとしては docker-compose.yml に記載しているCPUアーキテクチャが異なります。②の方は、 platform: linux/amd64 であり、①の方は platform: linux/x86_64 を指定しております。
ご自身のCPUアーキテクチャと同じ方法をやってみるといいかと思います。

*CPUアーキテクチャによって方法が異なるのか偶然の事象だけなのか、お恥ずかしながら筆者の勉強不足のためわかりかねますので、あくまでも一つの参考として受け取ってください。詳しい方がいらっしゃいましたら、ご教授いただけますと幸いです。

:outbox_tray:どんなエラー?

では、どんなエラーが発生したのかを見ていきます。
以下のコマンドでコンテナを開始した際に、 ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries が表示され、正常にコンテナを開始することができませんでした。

ターミナル
$ docker-compose run web rails new . --force --database=mysql
Creating network "rails_docker_default" with the default driver
Pulling db (mysql:8.0)...
8.0: Pulling from library/mysql
ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries

以前にもRailsで開発をしていた際に、似たようなワードのエラーと遭遇したことがありました。
なので、調査としては比較的スムーズでした。

ちなみに余談ですが、Dockerさんは Rosetta 2 のインストールを推奨しているようです。
Rosseta 2を適用しているかはFinderからでも確認できるので こちら で確認してみるといいかもしれません。

Docker Desktop for Apple silicon
....
to get the best experience, we recommend that you install Rosetta 2
Docker公式

話を戻します。
こちらの記事 で私の状況と全く同じ方がいらっしゃったので、参考にさせていただきました。
docker-compose.ymlplatform: linux/x86_64 とプラットフォームを指定してあげます。

docker-compose.yml
  db:
    # 以下を追加
    platform: linux/x86_64
    image: mysql:8.0
    command: --default-authentication-plugin=mysql_native_password

では、再度コマンドを打つと...

ターミナル
$ docker-compose run web rails new . --force --database=mysql
Pulling db (mysql:8.0)...
8.0: Pulling from library/mysql
15115158dd02: Pull complete
d733f6778b18: Pull complete
1cc7a6c74a04: Pull complete
c4364028a805: Pull complete
.
.
.
Done in 15.61s.
Webpacker successfully installed 🎉 🍰

しっかりと正常にコンテナを開始して、webpackerのインストールまでいきlocalhostの初期画面もしっかり表示されたので成功しました。

最後までお読みいただきありがとうございます。
この記事でエラー解消の一助となれば嬉しいです。

:closed_book:参考

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?