GitHub Codespaces は、 Visual Studio Codeに基づいてクラウドでホストされる開発環境を提供します。 Web ブラウザーから直接、またはローカルで Visual Studio Code 経由でアクセスできます。この場合、 Visual Studio Code はクラウドでホストされるバックエンドに接続するクライアントとして機能します。 Aspire 9.1 では、次のような codespaces GitHubをより適切にサポートするためのロジックが用意されています。
- 正しいプロトコルを使用してポート フォワーディングを自動的に構成します。
- Aspire ダッシュボードで URL を自動的に翻訳します。
Aspire 9.1 より前は、Aspire Codespace 内でGitHubを使用することは可能でしたが、より多くの手動構成が必要でした。
GitHub Codespaces と Dev Containers
GitHub Codespaces は、 Visual Studio Code と Dev Containers 仕様に基づいています。 GitHub Codespaces のサポートに加えて、Aspire 9.1 では、Visual Studio Codeおよびローカルでホストされている Dev Containers の使用のサポートが強化されています。 エクスペリエンスは似ていますが、いくつかの違いがあります。 詳細については、「開発コンテナーのAspireとVisual Studio Code」を参照してください。
テンプレート リポジトリの使用のクイック スタート
GitHub用Aspire Codespaces を構成するには、リポジトリ内の .devcontainer/devcontainer.json ファイルを使用します。 開始する最も簡単な方法は、テンプレート リポジトリから新しいリポジトリを作成 することです。 次の手順を検討してください:
テンプレートを使用して新しいリポジトリを作成します。
詳細を指定して [リポジトリの 作成] を選択すると、リポジトリが作成され、 GitHubに表示されます。
新しいリポジトリから[コード]ボタンを選択し、[Codespaces]\(コードスペース\) タブを選択し、[ Create codespace on main]\(メインにコードスペースを作成\) を選択します。
メインで [コードスペースの作成] を選択した後、Web ベースのバージョンのVisual Studio Codeに移動します。 Codespace を使用する前に、コンテナー化された開発環境を準備する必要があります。 このプロセスはサーバーで自動的に行われ、ブラウザー ウィンドウの右下にある通知の [ コードスペースのビルド ] リンクを選択して進行状況を確認できます。
コンテナー イメージのビルドが完了すると、 ターミナル プロンプトが表示され、環境を操作する準備が整っていることを通知します。
この時点で、 Aspire テンプレートがインストールされ、 ASP.NET Core 開発者証明書が追加され、承認されました。
スターター テンプレートを使用して新しい Aspire プロジェクトを作成します。
dotnet new aspire-starter --name HelloAspireその結果、リポジトリに多数のファイルとフォルダーが作成され、ウィンドウの左側にある [エクスプローラー ] パネルに表示されます。
タブ バーの右上隅にある [プロジェクトの実行] ボタンを選択して、HelloAspire.AppHost/AppHost.cs ファイルを使用して AppHost を起動します。
しばらくすると、[デバッグ コンソール] パネルが表示され、認証トークンを使用して Aspire Codespaces エンドポイントで公開されているGitHub ダッシュボードへのリンクが表示されます。
Aspireでダッシュボード URL を選択して、 ダッシュボードを開きます。 ブラウザー内の別のタブに Aspire ダッシュボードが開きます。
ダッシュボードでは、リソースで定義されているすべての HTTP/HTTPS エンドポイントの一般的な
localhostアドレスが、app.github.devドメイン上の一意の完全修飾サブドメインに変換されていることがわかります。これらの各エンドポイントへのトラフィックは、Codespace 内で実行されている基になるプロセスまたはコンテナーに自動的に転送されます。 これには、PgAdmin や Redis Insight などの開発時間ツールが含まれます。
注
エンドポイントは、デバッグ コンソールのダッシュボード リンクの URL 内に埋め込まれた認証トークンに加えて、すべてのユーザーがポート転送されたエンドポイントにアクセスできないように、GitHub ID を介した認証も必要です。 GitHub Codespaces でのポートフォワーディングの詳細については、コードスペース内のポートの転送を参照してください。
GitHub リポジトリに変更をコミットします。
GitHub Codespaces では、 GitHubで作業中のブランチに変更が自動的にコミットされることはありません。 ソース管理パネルを使用して、変更をステージングしてコミットし、リポジトリにプッシュし直す必要があります。
GitHub Codespace での作業は、自分のコンピューターでVisual Studio Codeを操作するのと似ています。 通常と同じように、さまざまなブランチをチェックアウトしたり、変更をプッシュしたりできます。 さらに、既存のデバッグ セッションを中断することなく、別のブランチですばやく作業する場合は、複数の Codespace を同時に簡単に起動できます。 詳細については、 コードスペースでの開発を参照してください。
Codespace をクリーンアップします。
GitHub コードスペースは一時的な開発環境であり、長期間使用できますが、必要に応じて再作成する破棄可能なリソースと見なす必要があります ( devcontainer.json および関連する構成ファイルに含まれるすべてのカスタマイズ/セットアップ)。
GitHub Codespace を削除するには、GitHub Codespaces ページにアクセスします。 これにより、すべての Codespace の一覧が表示されます。 ここから、各 Codespace に対して管理操作 (削除を含む) を実行できます。
GitHub Codespaces の使用に対する料金。 詳細については、 組織内のコードスペース GitHub コストの管理を参照してください。
注
Aspireでは、Visual Studio Code Codespaces に依存しないGitHubでの Dev Containers の使用がサポートされています。 開発コンテナーをローカルで使用する方法の詳細については、「Aspire のVisual Studio Codeと開発コンテナー」を参照してください。
devcontainer.json を手動で構成する
前のチュートリアルでは、GitHub Devcontainer テンプレートを使用して Aspire Codespace を作成する効率的なプロセスを示します。 既に既存のリポジトリがあり、Aspireで Devcontainer 機能を利用する場合は、リポジトリ内の .devcontainer フォルダーに devcontainer.json ファイルを追加します。
└───📂 .devcontainer
└─── devcontainer.json
テンプレート リポジトリには、開始点として使用できる devcontainer.json ファイルのコピーが含まれています。これは、Aspireに十分です。 次の JSON は、テンプレートの .devcontainer/devcontainer.json ファイルの最新バージョンを表します。
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/dotnet
{
"name": "Aspire",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/dotnet:dev-10.0-noble",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
"ghcr.io/devcontainers/features/powershell:1": {}
},
"hostRequirements": {
"cpus": 8,
"memory": "32gb",
"storage": "64gb"
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [5000, 5001],
// "portsAttributes": {
// "5001": {
// "protocol": "https"
// }
// }
// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "dotnet restore",
"onCreateCommand": "curl -sSL https://aspire.dev/install.sh | bash",
"postStartCommand": "dotnet dev-certs https --trust",
"customizations": {
"vscode": {
"extensions": [
"ms-dotnettools.csdevkit",
"GitHub.copilot-chat",
"GitHub.copilot"
]
}
}
// Configure tool-specific properties.
// "customizations": {},
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
Codespace の作成を高速化する
GitHub Codespace の作成には、基になるコンテナー イメージの準備に時間がかかる場合があります。 このプロセスを迅速化するために、 事前ビルド を利用して作成時間を約 30 ~ 60 秒に大幅に短縮できます (正確なタイミングが異なる場合があります)。 Codespaces の事前ビルドGitHubの詳細については、「codespaces prebuilds のGitHub」を参照してください。
Aspire