環境
・Mac M1 OS Monterey12.6
・docker desktop Version 4.15.0
今回はdockerでRailsの環境構築を行なった際にエラーがたくさん出たので解決方法を忘れないように備忘録として残します。
load metadata for docker.io/library/○○○とエラーが何個も表示される
docker-compose build実行時に下記のようなエラーが表示されました。
=> ERROR [example_app_db:1.0.0 internal] load metadata for docker.io/library/postgres:○.○
=> ERROR [example_app:1.0.0 internal] load metadata for docker.io/docker/dockerfile:○.○
=> ERROR [example_app:1.0.0 internal] load metadata for docker.io/library/ruby:○.○.○
(※○にはバージョンが入ります)
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to solve with frontend gateway.v0: rpc error: code = Unknown desc = failed to fetch oauth token: Post "https://auth.docker.io/token": dial tcp: lookup auth.docker.io on 192.168.xx.xx:xx: server misbehaving
エラー文をよく見てみると「トークンの取得に失敗している」という記述がありましたので、docker login
で確認すると
どうやらログインには成功しているようです。
docker desktopでログアウトしてもう一度ログインし直して解決している方もいましたが変わりませんでした。
念の為、dockerのアカウント設定で2段階認証用のアクセストークンを取得し、CLI上でもログインしてみましたがそれも変わらず。。
色々と調べてみると解決方法を見つけることができましたが、今回は2段階で解決できました。
解決方法①
まず1つ目ですが、Docker Hubのレジストリから直接pullしてくる方法です。
こちらに詳しい方法がたくさん記載されていました。
% docker pull postgres:○.○
※dockerfileの場合は階層も必要でした
% docker pull docker.io/docker/dockerfile:○.○
こちらの方法でpullしてくることによってエラーは出なくなりましたが、Rubyも同じようにpullし、もう一度buildするとRubyの出ていたエラーだけが解消されませんでした。
解決方法②
続いて二つ目ですが、docker desktopの設定を開いてGeneralにあるUse Docker Compose V2のチェックを外すことで解決できました。
最後に
dockerの環境構築ですんなりいったことが一度もない。。
今回はなぜ設定変更しただけで解決したのか理由がわからないままでした。
まあでも改めてdockerの便利さに気づくことができたのでよしとします!!
記事の感想や意見、ご指摘等いただけると助かります。
最後までご覧いただき、ありがとうございました。