Docker for Mac のダウングレード
はじめに
Rails を触っていたら File is too small という謎のエラーが出るようになった。
code:sh
$ docker-compose exec app bin/rails db:seed
...
ActiveRecord::RecordInvalid:
Validation failed: File is too small (should be at least 1 Byte)
...
調べてみると Docker Desktop for Mac 3.3.x で稀に起きる現象らしく、3.2.x に落とせば回避できるらしいことがわかった。
そこで Docker Desktop for Mac のダウングレードを試みたが、意外に苦労させられたのでその手順を書いておく。
TL;DR
brew install --cask docker で Docker Desktop for Mac を入れた場合は、下記コマンドでダウングレードできる。
code:sh
$ brew uninstall docker
$ rm -rf ~/Library/Group\ Containers/group.com.docker/settings.json
$ brew install --cask docker.rb
$ open -a Docker
settings.json は Preferences での設定に対応する設定ファイルで、割り当てるメモリの上限などを扱う。
ダウングレードの際には settingsVersion に関するエラーが出て厄介なので、とりあえず消してしまう。
curl で落としているのは 3.2.x のインストールスクリプトで、docker.rb という名前にしないと機能しない。
この手順でもエラーが出る場合は、Docker Toolbox 時代のスクリプトでアンインストールすれば改善するかも。
curl -sSL https://raw.githubusercontent.com/docker/toolbox/master/osx/uninstall.sh | bash とか。
ただこのスクリプトでは、イメージなども全て消えてしまうと思われる。