GitHub Actions で使える runner にubuntu-slimが追加されました。
これは今までのubuntu-latestなどと比べて、スペックが低い代わりに料金が安いというもので、軽いジョブはこちらを使うことでコストを抑える事ができます。
ではubuntu-latestとubuntu-slimで具体的にどんな違いがあるのか見てみます。
基本情報
GitHub 公式ドキュメントによると、スペック等の違いは以下の通りとなっています。
※private リポジトリの場合
| Runner | CPU | RAM | 種類 | ジョブ実行時間上限 | 料金/分 |
|---|---|---|---|---|---|
| ubuntu-latest | 2 | 7 GB | VM | 360 分 | $0.008 |
| ubuntu-slim | 1 | 5 GB | コンテナ | 15 分 | $0.002 |
詳細な違い
ドキュメントには記載のない違いについては、実際にジョブを実行して確かめてみました。
※2025/11/10 時点でのものです
OS
ubuntu-slim の OS は、ubuntu-latest と同じ Ubuntu 24.04 でした。
なお、通常の VM ランナーはubuntu-24.04のようにバージョン指定が可能ですが、ubuntu-slimの場合は今のところそれはできないようです。
インストール済みツール
ubuntu-latest は、CI や開発で利用するツールがかなり広範にプリインストールされています。
たとえば Node.js, Java, Python, PHP, Ruby といったプログラミング言語処理系は(バージョンを気にしなければ)setup-**のアクションを呼び出さずともいきなり利用することができます。
ubuntu-24.04にインストールされているツールの一覧
一方の ubuntu-slim は、ubuntu-latest に比べるとプリインストールのツールはかなり絞られています。
とは言っても、Ubunbuの公式Dockerイメージ(最低限のコマンドしかない)と比べると、CI で利用頻度が高いであろうツールは一通りインストールされています。
-
curl,wget -
bzip2,xz,unzip -
git,gh -
jq,yq -
gcc,make -
node,npm -
python3,pip3 -
ssh,scp -
sudo,systemctl gpg
環境変数
ANT_HOME, CONDA, SWIFT_PATHといった、プリインストールツールに関連する環境変数がない分、ubuntu-slim の環境変数は少なくなっています。
その他だと、LANGが未設定のため、一部のツールではマルチバイト文字を上手く処理できないケースがあるようです。
また、PATHの先頭が/home/runner/.local/binではなく$HOME/.local/binになっています。おそらくバグかな?と思いますが、~/.local/binにコマンドをインストールするような処理がもしあれば、PATHも自前で追加するなどする必要がありそうです。
使い所
以下の条件をすべて満たすジョブであれば、ubuntu-slimに置き換えるメリットがあるかもしれません。
- CPUなど、マシンの性能をあまり必要としない
- 短時間で終わる
- dockerを使わない
- ランナー自体がコンテナ環境のため
- プリインストールされたツールを必要としない
15分の制限があるため、それを超える(ことがある)ようなジョブには使えません。
今まで VM のランナーで2コアを使って5分ほどで終わっていたジョブが、ubuntu-slimで10分になる、とかであれば、移行は可能だし金銭的コストも下げられます。
一方、CI時間が延びると開発速度や開発者体験を損なうので、その点は天秤にかけて考える必要がありそうです。
参考: