[Docker] i/o timeoutのエラー対応
初めまして。株式会社tolvの宍戸陽介です。
夫婦二人で福岡でシステム会社をしています。私たちの紹介は改めて別の記事でお話しできればと思います。
今回はLaravelの環境構築の際にDockerでエラーが発生したので、対処方法について記載します。
laradockでdocker-compose build時のエラー
laravelの開発環境をlaradockで構築する際に、下記エラーが発生しました。
failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to do request: Head https://registry-1.docker.io/v2/laradock/php-fpm/manifests/latest-8.0: proxyconnect tcp: dial tcp 192.168.65.1:3128: i/o timeout
ERROR: Service 'php-fpm' failed to build : Build failed
PCの環境がM1のmacのため、その辺りの問題かと思っていたのですが、動いていた他の開発環境も同様のエラーで動きませんでした。
色々なサイトを調べたのですが、対象方法でDNSの変更などがありましたがどれも解決せずでした。
virtualization frameworkの無効化
解決方法ですが、Docker Desktopの [Preferences] - [Experimental Features] にある[Use new virtualization framework] のチェックを外すことで解決しました。
virtualization frameworkはAppleがBig Surで提供している仮想化のフレームワークの様です。おそらく、まだ安定していないのかもしれませんね。
おまけ
M1対応のdockerのmysqlは対応されていないようなので、もしmysqlを利用する場合は、docker-compose.ymlのmysqlに下記を追加することで対応できます。
platform: "linux/x86_64"
Author : Yosuke Shishido