コンテンツへスキップ
Latchkey
ドキュメントメニュー

ランナーイメージに何が入っているか

すべての Latchkey ランナーにプリインストールされたツールチェーン: 言語、Docker、ブラウザ、データベース、パッケージマネージャー、そして GitHub 互換の toolcache。

すべてのランナーは、GitHub ホステッドランナーに匹敵するか上回るよう設計されたツールチェーンを備えた、メンテナンスされた Ubuntu 24.04 LTS (x86_64) イメージから起動するため、ほとんどのワークフローは変更なしで実行されます。

ツールチェーン#

カテゴリプリインストール
Node.js20 (デフォルト)、22、24、npm と yarn 付き。nvm も利用可能
Python3.10 から 3.14、加えて pipx と PyPy
Go1.22 から 1.25
Java (Temurin)8、11、17、21、25、Maven、Gradle、Ant 付き
その他の言語Rust (stable + rustfmt + clippy)、.NET 8/9/10、Ruby (+ fastlane)、PHP 8.3 (+ Composer、Xdebug)、Haskell、Swift、Kotlin、Julia、PowerShell
コンテナBuildKit を備えた Docker CE、docker buildxdocker compose。Buildah、Podman、Skopeo
ブラウザChrome、Firefox、Edge を対応するドライバー付きで。Selenium。Android SDK/NDK
データベースPostgreSQL 16、MySQL 8.0 (起動時はサービス無効。ジョブ内で起動してください)
パッケージマネージャーHomebrew、conda、vcpkg、加えて各言語ネイティブのもの
CLI の標準AWS CLI v2、jq、git、build essentials

GitHub ホステッドの動作に合わせる#

このイメージの最も有用な特性は、変更する必要がないことです。actions/setup-nodeactions/setup-python などのステップをそのままにしてください: それらはダウンロードする代わりに /opt/hostedtoolcache の GitHub 同等の toolcache から即座に解決されるため、移行中も同じワークフローファイルが両方のランナータイプで正しいまま保たれます。

バージョン固定に関する助言はどこでも同じです: イメージのデフォルトに頼るのではなく、setup アクションにバージョンを明示させてください。Node 20 がデフォルトで 22 と 24 もインストールされていますが、明示的な node-version を持つ setup-node ステップはワークフローに意図を語らせ、メンテナンスされるイメージが進化しても安定させます。

知っておく価値のある 3 つのこと#

ネイティブ DockerDocker はホスト自体で動作します: docker-in-docker の回避策は不要で、BuildKit はデフォルトでオンです。
マルチアーキテクチャビルドQEMU/binfmt が事前構成されているため、docker buildx --platform linux/amd64,linux/arm64 がそのまま動作します。
GitHub 同等の toolcacheactions/setup-nodesetup-python などがダウンロードなしで /opt/hostedtoolcache から即座に解決されます。

データベースとブラウザ#

PostgreSQL 16 と MySQL 8.0 は、サービスが 起動時に無効 の状態でプリインストールされているため、ジョブが要求するまで邪魔になりません。必要なものを起動するのは 1 行のステップで、Latchkey 固有の何かではなく標準的な Ubuntu のサービス管理です:

それを使うステップの前にサービスを起動します:

.github/workflows/ci.yml
steps:
  - uses: actions/checkout@v4
  - name: Start PostgreSQL
    run: sudo systemctl start postgresql
  - run: npm test

MySQL 8.0 でも同じパターンです:

.github/workflows/ci.yml
steps:
  - uses: actions/checkout@v4
  - name: Start MySQL
    run: sudo systemctl start mysql
  - run: npm test

Chrome、Firefox、Edge が対応するドライバーバージョンとともにプリインストールされ、Selenium も利用可能なため、ほとんどのブラウザテストスイートはインストールステップなしで実行されます。モバイル作業向けには、Android SDK と NDK もイメージに含まれています。

ジョブ内でサービスを起動することは、依存関係を明示的に保つことにもなります: ワークフローファイルを読む誰もが、そのスイートにデータベースが必要だとわかります。これはワークフローがランナータイプ間を移動するときに持っておく価値があります。