act とは
利用できる Runnner のイメージについて
リポジトリの README に書いてあります。
種別として、act
、runner
、js
、rust
などがありますが、いちいち使い分けるのは面倒なので full
でいいような気がします*1。
すなわち、以下をとにかく実行し、act で用いればいいのではないかと。
$ docker image pull ghcr.io/catthehacker/ubuntu:full-24.04 $ docker image pull ghcr.io/catthehacker/ubuntu:full-22.04
イメージの容量
ドキュメント にも書いてあるように、展開時には 60GB 程度まで大きくなることもあるようです。ghcr.io/catthehacker/ubuntu:full-24.04
については 42.1GB
でした*2。
今の時代のローカルマシンならば、これぐらいの容量は問題ないでしょう。
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE ghcr.io/catthehacker/ubuntu full-22.04 ba88d8d9cf0b 54 years ago 49.7GB ghcr.io/catthehacker/ubuntu full-24.04 2cd8b4f8f5ae 54 years ago 42.1GB
Runner のイメージに関するドキュメントの記載について
公式ドキュメント の Runner についてのページ には、以下のような記述があります。
These default images do not contain all the tools that GitHub Actions offers by default in their runners. Many things can work improperly or not at all while running those image. Additionally, some software might still not work even if installed properly, since GitHub Actions are running in fully virtualized machines while act is using Docker containers (e.g. Docker does not support running systemd)
つまりどうするか
act での実行には限界があるので、少し頑張って無理そうなら、ブランチを作って push しまくってデバッグして最後に squash するのが現実的なのではないかと思います*3。
たとえば、act での実行をさせたいがあまり、ワークフローのファイルを書き換えるなどというのは過剰かと思います。
ここらへん、以前書いた SSHデバッグの話 と同様、CircleCI は公式で CLI が用意されていて楽でした。