Skip to main content

プレビルドに関するトラブルシューティング

プレビルドを使用して、codespace の作成を高速化できます。 この記事では、プレビルドを使った一般的な問題のトラブルシューティング手順を示します。

GitHub Codespaces のプレビルドの詳細については、「codespaces の事前ビルド」をご覧ください。

codespace がプレビルドから作成されたかどうかの確認

codespace を作成する際には、使用する仮想マシンの種類を選択できます。 仮想マシンの種類にプレビルドの用意がある場合は、その横に プレビルド対応 と表示されます。

使用可能なマシンの種類の一覧 (2、4、8、16、32 コア) のスクリーンショット。すべてに [プレビルド対応] というラベルが付いています。

GitHub Codespaces エディターの基本設定を [Visual Studio Code for Web] に設定しており、プレビルドが使用されている場合は、[codespace の設定] ページに "プレビルド codespace が見つかりました" というメッセージが表示されます。

[codespace の設定] ページのスクリーンショット。次のテキストが含まれます: "プレビルド codespace が見つかりました。 イメージをダウンロードしています。"

同様に、エディターの基本設定が [VS Code] の場合、統合ターミナルには、新しい codespace を作成するときに、"リポジトリのプレビルド構成で定義されたプレビルド codespace を使用しています" というメッセージが含まれます。 詳しくは、「GitHub Codespaces の既定のエディターを設定する」を参照してください。

codespace を作成した後、ターミナルで次の GitHub CLI コマンドを実行して、プレビルドから作成されたかどうかを確認できます。

Shell
gh api /user/codespaces/$CODESPACE_NAME --jq .prebuild

codespace がプレビルドを使用して作成された場合は、true が返されます。

GitHub CLI (gh) がインストールされていない場合は、次のコマンドを使用できます。codespace がプレビルドから作成された場合は、createFromPrebuild が返されます。

Shell
cat /workspaces/.codespaces/shared/environment-variables.json | jq '.ACTION_NAME'

プレビルドの使用状況の確認

リポジトリの設定の [Codespaces] ページで、リポジトリにプレビルドが使われているかどうかを確認できます。

個人用アカウントまたは Organization アカウントの課金データを確認すると、現在の請求期間でプレビルドによってどのくらいのストレージ スペースが消費されているかを確認できます。 また、使用状況レポートを生成すると、どのリポジトリにプレビルドが使われているかを確認できます。 詳しくは、「GitHub Codespaces の使用状況の表示」を参照してください。

"Prebuild Ready" ラベルが欠落している場合がある

プレビルドが有効なブランチから新しい codespace を作るとき、コンピューターの種類を選ぶダイアログ ボックスに [ プレビルド対応] のラベルが表示されないことがあります。 これは、プレビルドが現在使用できないことを意味します。

既定では、プレビルドが有効なブランチにプッシュするたびに、プレビルドが更新されます。 プッシュ操作が開発コンテナーの構成の変更に関わる場合は、更新が進行中のとき、[ プレビルド対応] ラベルはマシンの種類のリストから削除されます。 この期間も、プレビルドを使用せずに codespace を作成できます。 必要であれば、開発コンテナー構成ファイルを変更したときのみ、またはカスタム スケジュールで指定したときにのみプレビルドが更新されるように設定することで、リポジトリにプレビルドを使用できない場合を減らすことができます。 詳しくは、「プレビルドの構成」を参照してください。

ブランチがプレビルドに対して特に有効になっていない場合でも、プレビルドが有効なブランチから分岐された場合はプレビルドの利点が得られる可能性があります。 しかし、開発コンテナー構成がご利用のブランチで変更されたために、ベース ブランチの構成とは異なる場合、プレビルドはご利用のブランチで使用できなくなります。

特定のブランチで [ プレビルド対応] が表示されない場合、以下を確認してください。

  • このブランチのプレビルド構成が存在することを確認する。 リポジトリ管理者でない場合は、管理者に連絡して確認する必要があります。
  • プレビルド構成に自分のリージョンが含まれることを確認する。
  • 開発コンテナー構成への変更が、最近、プレビルドが有効になったブランチにプッシュされたかどうかを確認する。 そうである場合は、通常、このプッシュに対してプレビルド ワークフローが実行されるまで待たないと、プレビルドを再び使用することはできません。
  • 構成の変更が最近行われていない場合は、リポジトリの [アクション] タブに移動し、ワークフロー リストの [ Codespaces プレビルド] をクリックし、ブランチに対してプレビルド ワークフローが正常に実行されたことを確認します。 ワークフローの最新の実行が失敗し、これらの失敗した実行の 1 つ以上に開発コンテナー構成への変更が含まれていた場合、関連するブランチに対して使用可能なプレビルドはありません。

プレビルドを使って作った codespace で一部のリソースにアクセスできない

プレビルド構成の devcontainer.json 構成ファイルで、他のリポジトリへのアクセス許可が必要であることが指定されている場合、リポジトリ管理者は、プレビルド構成を作成または更新するときに、これらのアクセス許可を認可するように求められます。 管理者が要求されたすべてのアクセス許可を付与していない場合、プレビルドと、このプレビルドから作った codespace で問題が発生する可能性があります。 これは、このプレビルドに基づいて codespace を作るユーザーが、すべてのアクセス許可を付与するように求められ、"付与した" 場合でも起こります。__

プレビルドに対するワークフロー実行が失敗した場合のトラブルシューティング

GitHub Actions の使用制限を増やす

プレビルドは、GitHub Actions を使用して作成および更新されます。 GitHub Actions の分数をすべて使用し、使用制限に達した場合、プレビルド ワークフローは失敗します。 このような場合は、GitHub Actions の使用制限を増やして、ワークフローが実行できるようにします。 詳しくは、「GitHub Actions の使用制限の管理」を参照してください。

アクセス許可の承認

プレビルド構成の devcontainer.json 構成ファイルが、他のリポジトリへのアクセス許可が必要であることを指定するように更新され、リポジトリ管理者がプレビルド構成にこれらのアクセス許可を認可するように求められなかった場合、プレビルド ワークフローが失敗する可能性があります。 何も変更せずに、プレビルド構成を更新してみてください。 [更新] をクリックして、認可ページが表示される場合は、要求されたアクセス許可が適切であることを確認し、適切であれば、要求を認可します。 詳細については、「事前ビルドの管理」および「codespace 内の他のリポジトリへのアクセスの管理」を参照してください。

プレビルド構成に対するワークフロー実行が失敗する場合は、調査の間、一時的にプレビルド構成を無効にすることができます。 詳しくは、「事前ビルドの管理」を参照してください。

古いプレビルドが使用されないようにする

既定では、最新のプレビルド ワークフローが失敗した場合、リポジトリ、ブランチ、および devcontainer.json 構成ファイルの同じ組み合わせに対して以前のプレビルドが使用され、新しい codespace が作成されます。 この動作は、プレビルド最適化と呼ばれます。

プレビルドの最適化を有効にしておくことをお勧めします。これは、最新のプレビルドが使用できない場合でも codespace を迅速に作成できるようにするためです。 ただし、リポジトリ管理者は、プレビルドの codespace が現在のブランチの状態の背後にあるという問題が発生した場合に、プレビルドの最適化を無効にすることができます。 プレビルドの最適化を無効にすると、最新のプレビルド ワークフローが失敗した場合、または現在実行中の場合、リポジトリ、ブランチ、devcontainer.json ファイルの関連する組み合わせの codespace がプレビルドなしで作成されます。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイド バーの [コードと自動化] セクションで、 [Codespaces] をクリックします。

  4. 影響を受けるプレビルド構成の右側にある省略記号 ( ... ) を選び、 [編集] をクリックします。

    [編集] が強調されているプレビルド オプション ドロップダウンのスクリーンショット。

  5. [構成の編集] ページの下部までスクロールし、 [詳細オプションの表示] をクリックします。

    プレビルド構成ページの下部のスクリーンショット。 [詳細オプションの表示] リンクが濃いオレンジ色の枠線で強調表示されています。

  6. 既定の設定を無効にする必要がある場合は、 [プレビルドの最適化を無効にする] を選びます。

    [詳細オプション] の設定のスクリーンショット。 [プレビルドの最適化を無効にする] というラベルのチェックボックスがオンになっています。 この下には [更新] ボタンがあります。

  7. 変更を保存するには、 [更新] をクリックします。

参考資料