いつもの
原因1 なんかDockerのコンテキストの扱いが変わった?
いつの間にやら、 docker buildx build -f aarch64/Dockerfile とやったとき、カレントディレクトリ以下がcontextになっていたが、Dockerfileが存在するディレクトリ以下がcontextになるように仕様が変わった? ログを見るとそのような動きになっていたので、それに対応した。
原因2 Psychのインストールができずにビルド失敗
Railsのバージョンが上がったからか、 _Psych _を入れようとして bundle install が失敗していた。解決法は libyaml-dev をインストールすること(debian / Ubuntu の場合)なのでDockerfileに追加した。
その他修正
独自バージョン番号を入れる
いままでは、 version.rb を文字列置換して無理やり、ビルド日とgitのコミットIDを入れていたが、いつの間にか、 MASTODON_VERSION_METADATA という変数が定義されていれば自動的に表示されるようになった。かと言っても、それを実行時に入れていたら意味がないので、コンテナイメージのビルド時に含めるようにした。(また文字列置換である)
かわりに、version.rb を触るのはやめた。
shallow clone するようにした
なぜか git clone を普通にやっていたので depth=1 を追加した。
なぜ今までやってなかった…