Circle CI には executer、ようは GitHub Actions の runner に相当するものに arm アーキテクチャがあるので、amd64 と arm64 をそれぞれビルドする、ということがお手軽にできるのだけど、GitHub Actions では amd64 以外では、 macos-14
runner を使うと arm64 で動かすことは可能なものの docker などの仮想化機能は disabled になっているので、docker で何かをしたいということであれば 実質 amd64 一択となる。
ただこの amd64 でも docker の buildx という機能を使えば qemu のレイヤでエミュレートして arm64 イメージをビルドすることができるらしいのでやってみた。
https://github.com/docker/setup-buildx-action
とは言え、上のリポジトリに書いてあるとおりで
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
という 2 つの actions を有効にした上で docker buildx build --platform=linux/arm64 .
みたいな感じで docker イメージを作成するとよい。そんな感じでできたのがこれ
ただし、Ruby のビルドで buildx 経由だと 1h 位かかるという遅さなので、daily build みたいなやつ以上のビルドはしんどいと思う。早く、GitHub の方で native な arm runner が提供されるといいのだけど。頼む。
シリーズ購読で配信されていたので読んだ。過去編はいまいちというか、過去との振り返りで現代を生きるというのがこのマンガの売りと思っていたので、めちゃくちゃ進行遅くしてきたな...というマイナスな印象でパラパラ眺めて終わり。