Laravel sailでCannot create cache directoryが発生したとき

結論を言うと、私の場合はdockerのディスク容量が足りなくなったのが原因でした。

以下はエラーの全文です。

Cannot create cache directory /home/sail/.cache/composer/repo/https---repo.packagist.org/, or directory is not writable. Proceeding without cache. See also cache-read-only config if your filesystem is read-only.
目次

Macの容量は十分なのにDockerで容量が足りなくなる?

そもそも、どうやって容量が足りないことを知ったのかというと、.cacheファイルが作れないというエラーから、コンテナ内に入って直接作成すればいけるのではないかと推測したことでした。

ヒントになった操作は以下の通りです。

sail shell
cd /home/sail
mkdir .composer // mkdir: cannot create directory '.composer': No space left on device

No space left on deviceというエラーを見て、Macの容量を確認しましたが、50GB近く残っていたので、docker自体が怪しいと気づきました。

色々調べたみたところ、下記のコマンドでdockerが使用できる容量が表示できるようです。

docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          103       29        43.82GB   27.91GB (63%)
Containers      53        11        199.6MB   126MB (63%)
Local Volumes   23        23        3.184GB   0B (0%)
Build Cache     298       0         2.048GB   2.048GB

上記の結果は、不要なDockerのデータを整理したので十分に空きががありますが、エラーが出ていた時は残りが0という状態でした。

金井 泰樹のアバター 金井 泰樹 FUNBREW代表

FUNBREWの代表。
新卒からIT系の企業に勤め、SES、スマホアプリ開発、自社開発の会社で経験を積んで独立。
新卒時代にエンジニアとしてのキャリアを積むのに失敗し、その後に苦労した経験から、現在教育事業の立ち上げを準備中。
強みはウェブシステム開発全般と迅速なレスポンスです。

目次