はじめに
満を持して購入したMac Book Air M1。
アプリケーションのインストールをAnsibleで行ってみるなど、新しい試みにも挑戦しました。
その中で、インストールできないアプリケーションがあったのです。
今回その対処方法を記録に残しておきます。
何が起きたのか?
AnsibleでDockerとCleanArchiverのインストールでエラーとなりました。
Ansibleではなく、Terminalで直接実行してもエラーになります。
調べてみたところ、どうやらM1チップは色々癖があるようでインストールできないアプリケーションがいくつもあるようです。
仕方がないのでDockerは手動でDocker Desktopをインストール、CreanArchiverは一旦保留。
aws-cliを使いたいので母艦のMac miniからコンテナ情報をMac Book Air M1にコピー。
そして、「docker build」を実行。
で、ここでまさかのエラーが発生したのです!
:
------
failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c apt-get update && apt-get install terraform]: exit code: 100
:
どうもterraformのモジュールのインストール段階でエラーが発生しているようです。
試しのこの行をコメントにして再実行してみたのですが、他の箇所でも同様のエラーが発生していました。
これはterraformだからエラーになったわけではなさそうだ、何か他に理由がありそうだというところまでは想像つきました。
でも、基本的にはコンテナの構成情報をコピーすれば同じように使えるはずでは?
なぜMac Book Air M1だとエラーになる?
原因
原因はdockerのimageがまだARMプロセッサに対応していないためのようです。
参考
対処
docker-compose.ymlに以下の一文を加えればよいそうです。
platform: linux/amd64
おわりに
これまで母艦のMacで色々やってきた経験を活かせるのでMac Book Air M1でもやっていけると思っていましたが、思いがけないトラブルに巻き込まれてしまいました。
とはいえ、調べてみると先駆者の方々がたくさんの情報を残してくださっているので前に感謝しかありません。
じつは、このMac Book Air M1でWindows10の環境をUTMで稼働させることも計画していたのですが、どうもベータ版のような位置づけらしく、一筋縄ではいかない雰囲気です。
優先度は一旦落として、少し落ち着いてからチャレンジしてみようと思います。