React の勉強を進めております。
docker-compose up -d
を実行したところ、
no matching manifest ...
といったエラーになりました。
対処法をネットで調べていった結果、開発環境が M1 Mac であることが影響していました。
エラー内容
Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
WARNING: Image for service api was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Pulling db (mysql:5.7)...
5.7: Pulling from library/mysql
ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries
「一致するマニフェストがありません」
構築環境
M1 Mac
- React : 16.8.6
- Node : v14.17.3
- mysql:5.7
対応
クリティカルにこちら↓でした。
docker-compose.yml に platform: linux/x86_64
を追記します。
db:
platform: linux/x86_64
'no matching manifest' に対するエラーはこれで解決しました。
原因
後になって、原因も何となく把握しておこうと思い、またネット検索。
こちらで解説されていました。
M1チップのプラットフォームはarm64であるのに対し、
mysql5.7*のイメージのサポートプラットフォームがAMD64で不一致
蛇足
ここからは自戒用メモです。
codker-compose.yml を更新し、再度 docker-compose up。
しかし、違ったエラーが。
WARNING: Host is already in use by another container
ERROR: Encountered errors while bringing up the project.
他のプロジェクトがポートを使っていたため、エラーが発生してしまいました。こちらも勉強用に立ち上げたコンテナです。
docker ps
で使用しているコンテナを割り出して、docker stop [コンテナID]
でそのコンテナを停止。
改めて docker-compose up をしたところ、、done
!