<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://mochiuwiki.e2.valueserver.jp/index.php?action=history&amp;feed=atom&amp;title=GitHub_-_Codespaces</id>
	<title>GitHub - Codespaces - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="http://mochiuwiki.e2.valueserver.jp/index.php?action=history&amp;feed=atom&amp;title=GitHub_-_Codespaces"/>
	<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Codespaces&amp;action=history"/>
	<updated>2026-09-09T10:43:42Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Codespaces&amp;diff=14581&amp;oldid=prev</id>
		<title>Wiki: ページの作成:「== 概要 == GitHub Codespacesは、クラウド上にホストされた開発環境を提供するGitHubの機能である。&lt;br&gt; &lt;br&gt; Ubuntu Linux仮想マシン上のDockerコンテナとして動作し、ブラウザ版VS Code、デスクトップ版VS Code、またはGitHub CLIから接続して利用できる。&lt;br&gt; &lt;br&gt; ローカル環境のセットアップ不要で即座に開発を開始でき、チームメンバー間で統一された開発環境を共…」</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Codespaces&amp;diff=14581&amp;oldid=prev"/>
		<updated>2026-03-23T22:17:33Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「== 概要 == GitHub Codespacesは、クラウド上にホストされた開発環境を提供するGitHubの機能である。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Ubuntu Linux仮想マシン上のDockerコンテナとして動作し、ブラウザ版VS Code、デスクトップ版VS Code、またはGitHub CLIから接続して利用できる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ローカル環境のセットアップ不要で即座に開発を開始でき、チームメンバー間で統一された開発環境を共…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHub Codespacesは、クラウド上にホストされた開発環境を提供するGitHubの機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ubuntu Linux仮想マシン上のDockerコンテナとして動作し、ブラウザ版VS Code、デスクトップ版VS Code、またはGitHub CLIから接続して利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ローカル環境のセットアップ不要で即座に開発を開始でき、チームメンバー間で統一された開発環境を共有できることが主なメリットである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、Codespacesが提供する主な機能を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub Codespacesの主な機能&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| クラウド開発環境 || Ubuntu Linux仮想マシン上のDockerコンテナとして動作し、Webブラウザからすぐに利用できる。&lt;br /&gt;
|-&lt;br /&gt;
| Dev Container対応 || devcontainer.jsonで開発環境を定義して、チーム全体で同一の環境を再現できる。&lt;br /&gt;
|-&lt;br /&gt;
| 複数の接続方法 || ブラウザ版VS Code、デスクトップ版VS Code、GitHub CLI等の複数の方法で接続できる。&lt;br /&gt;
|-&lt;br /&gt;
| プリビルド機能 || 依存関係のインストールやビルドを事前に実行することにより、Codespace作成時間を短縮できる。&lt;br /&gt;
|-&lt;br /&gt;
| シークレット管理 || 環境変数としてシークレットを安全に注入して、APIキーや認証情報を管理できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Codespaceの作成 ==&lt;br /&gt;
==== リポジトリからの作成 ====&lt;br /&gt;
Codespaceはリポジトリのページから直接作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Web UIからの作成手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [リポジトリ]ページを開く。&lt;br /&gt;
# 緑色の[Code]ボタンを押下する。&lt;br /&gt;
# [Codespaces]タブを選択する。&lt;br /&gt;
# [Create codespace on &amp;lt;ブランチ名&amp;gt;]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeから作成する場合は、[Remote Explorer]パネルを開いて、[+]ボタンを押下する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIから作成するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh codespace create -r OWNER/REPO -b BRANCH&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリ名とブランチを指定しない場合は、対話形式で選択できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ブランチ・PR・テンプレートからの作成 ====&lt;br /&gt;
特定のブランチやPull Request、テンプレートからもCodespaceを作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ブランチからの作成&lt;br /&gt;
*: [ブランチ]ページの[Code]ボタンから、そのブランチに対応したCodespaceを作成できる。&lt;br /&gt;
* Pull Requestからの作成&lt;br /&gt;
*: [PR]ページの[Code]ボタンから、PRのブランチに対応したCodespaceを作成できる。&lt;br /&gt;
*: PRの変更内容をレビューしながら動作確認する用途に適している。&lt;br /&gt;
* テンプレートからの作成&lt;br /&gt;
*: github.com/codespaces/templates から、Node.js、Python、JavaScript等のテンプレートを選択して空のCodespaceを作成できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== マシンタイプの選択 ====&lt;br /&gt;
Codespaceのマシンタイプはコア数とメモリ容量によって異なる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、利用可能なマシンタイプを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Codespacesのマシンタイプと料金&lt;br /&gt;
! マシンタイプ !! メモリ !! ストレージ !! 料金 !! 用途&lt;br /&gt;
|-&lt;br /&gt;
| 2-core || 8[GB] || 32[GB] || $0.18/時間 || 軽量な開発、スクリプト作業&lt;br /&gt;
|-&lt;br /&gt;
| 4-core || 16[GB] || 32[GB] || $0.36/時間 || 一般的なWebアプリケーション開発&lt;br /&gt;
|-&lt;br /&gt;
| 8-core || 32[GB] || 64[GB] || $0.72/時間 || 中規模アプリケーション、複数サービスの並行起動&lt;br /&gt;
|-&lt;br /&gt;
| 16-core || 64[GB] || 128[GB] || $1.44/時間 || 大規模プロジェクト、重いビルド作業&lt;br /&gt;
|-&lt;br /&gt;
| 32-core || 128[GB] || 128[GB] || $2.88/時間 || 機械学習、大規模コンパイル作業&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
マシンタイプは作成後も変更できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Web UIからの変更&lt;br /&gt;
*: [Your codespaces]ページで対象のCodespaceのメニューから[Change machine type]を選択する。&lt;br /&gt;
* VS Codeからの変更&lt;br /&gt;
*: コマンドパレットで &amp;lt;u&amp;gt;Codespaces: Change Machine Type&amp;lt;/u&amp;gt; を実行する。&lt;br /&gt;
* CLIからの変更&lt;br /&gt;
*: 以下に示すコマンドを使用する。&lt;br /&gt;
*: &amp;lt;pre&amp;gt;gh codespace edit --machine MACHINE_TYPE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リージョンの選択 ====&lt;br /&gt;
Codespacesは複数のリージョンで利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リージョンは、[Settings] - [Codespaces] - [Region]から選択できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
利用可能なリージョンを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* United States East&lt;br /&gt;
* United States West&lt;br /&gt;
* Europe West&lt;br /&gt;
* Southeast Asia&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
レイテンシを最小化するために、物理的に近いリージョンを選択することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dev Container ==&lt;br /&gt;
==== Dev Containerとは ====&lt;br /&gt;
Dev Containerは、開発環境をコードとして定義する仕組みである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
devcontainer.jsonファイルにベースイメージ、インストールするツール、VS Code拡張機能、エディタ設定等を記述することで、チーム全員が同一の開発環境を利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dev Containerを使用することにより、以下に示すメリットが得られる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 環境の再現性&lt;br /&gt;
*: 新しいメンバーが参加した際も、同一の開発環境を即座に構築できる。&lt;br /&gt;
* 依存関係の管理&lt;br /&gt;
*: 必要なツールやライブラリをコンテナ内に閉じ込め、ホスト環境との競合を防ぐ。&lt;br /&gt;
* CI/CDとの統合&lt;br /&gt;
*: 開発環境とCI環境を同一の定義で管理できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== devcontainer.json ====&lt;br /&gt;
devcontainer.jsonはJSONC (コメント付きJSON) 形式で記述する設定ファイルである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
配置場所を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.devcontainer/devcontainer.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.devcontainer.json&amp;lt;/u&amp;gt; (ルートディレクトリ直下)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数のDev Container設定を持つ場合は、&amp;lt;u&amp;gt;.devcontainer/&amp;lt;設定名&amp;gt;/devcontainer.json&amp;lt;/u&amp;gt; のようにサブディレクトリに配置できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要な設定項目 ====&lt;br /&gt;
下表に、devcontainer.jsonの主要な設定項目を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ devcontainer.jsonの設定項目一覧&lt;br /&gt;
|-&lt;br /&gt;
! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;image&amp;lt;/code&amp;gt; || ベースとなるDockerイメージを指定する。&amp;lt;br&amp;gt;例: &amp;lt;u&amp;gt;&amp;quot;image&amp;quot;: &amp;quot;mcr.microsoft.com/devcontainers/javascript-node:18&amp;quot;&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;features&amp;lt;/code&amp;gt; || 追加する言語やツールを指定する。&amp;lt;br&amp;gt;Dev Container Featuresとして提供されているモジュールを使用する。&amp;lt;br&amp;gt;例: &amp;lt;u&amp;gt;&amp;quot;features&amp;quot;: {&amp;quot;ghcr.io/devcontainers/features/python:1&amp;quot;: {&amp;quot;version&amp;quot;: &amp;quot;3.11&amp;quot;}}&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;customizations.vscode.extensions&amp;lt;/code&amp;gt; || インストールするVS Code拡張機能のIDを配列で指定する。&amp;lt;br&amp;gt;例: &amp;lt;u&amp;gt;&amp;quot;extensions&amp;quot;: [&amp;quot;ms-python.python&amp;quot;, &amp;quot;dbaeumer.vscode-eslint&amp;quot;]&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;customizations.vscode.settings&amp;lt;/code&amp;gt; || VS Codeのエディタ設定をキーと値のオブジェクトで指定する。&amp;lt;br&amp;gt;例: &amp;lt;u&amp;gt;&amp;quot;settings&amp;quot;: {&amp;quot;editor.tabSize&amp;quot;: 2}&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;forwardPorts&amp;lt;/code&amp;gt; || コンテナ内のポートをホストに転送するポート番号の配列を指定する。&amp;lt;br&amp;gt;例: &amp;lt;u&amp;gt;&amp;quot;forwardPorts&amp;quot;: [3000, 5432]&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;postCreateCommand&amp;lt;/code&amp;gt; || Codespace作成後に自動実行するコマンドを指定する。&amp;lt;br&amp;gt;依存関係のインストール等に使用する。&amp;lt;br&amp;gt;例: &amp;lt;u&amp;gt;&amp;quot;postCreateCommand&amp;quot;: &amp;quot;npm install&amp;quot;&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;remoteEnv&amp;lt;/code&amp;gt; || コンテナ内に設定する環境変数をオブジェクトで指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;remoteUser&amp;lt;/code&amp;gt; || コンテナ内のデフォルトユーザを指定する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
devcontainer.jsonの記述例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    // Node.js開発環境の例&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;Node.js Development&amp;quot;,&lt;br /&gt;
    &amp;quot;image&amp;quot;: &amp;quot;mcr.microsoft.com/devcontainers/javascript-node:20&amp;quot;,&lt;br /&gt;
    &amp;quot;features&amp;quot;: {&lt;br /&gt;
       &amp;quot;ghcr.io/devcontainers/features/git:1&amp;quot;: {}&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;customizations&amp;quot;: {&lt;br /&gt;
       &amp;quot;vscode&amp;quot;: {&lt;br /&gt;
          &amp;quot;extensions&amp;quot;: [&lt;br /&gt;
             &amp;quot;dbaeumer.vscode-eslint&amp;quot;,&lt;br /&gt;
             &amp;quot;esbenp.prettier-vscode&amp;quot;&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;settings&amp;quot;: {&lt;br /&gt;
             &amp;quot;editor.formatOnSave&amp;quot;: true,&lt;br /&gt;
             &amp;quot;editor.defaultFormatter&amp;quot;: &amp;quot;esbenp.prettier-vscode&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
       }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;forwardPorts&amp;quot;: [3000],&lt;br /&gt;
    &amp;quot;postCreateCommand&amp;quot;: &amp;quot;npm install&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プリセット設定 ====&lt;br /&gt;
下表に、GitHubが公式に提供するプリセットのDev Container設定を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Dev Containerプリセット一覧&lt;br /&gt;
! プリセット !! イメージ !! 主な用途&lt;br /&gt;
|-&lt;br /&gt;
| Node.js / JavaScript || mcr.microsoft.com/devcontainers/javascript-node || フロントエンド、Node.jsバックエンド&lt;br /&gt;
|-&lt;br /&gt;
| Python || mcr.microsoft.com/devcontainers/python || Python Webアプリ、データサイエンス&lt;br /&gt;
|-&lt;br /&gt;
| Java || mcr.microsoft.com/devcontainers/java || Javaアプリケーション、Spring Boot&lt;br /&gt;
|-&lt;br /&gt;
| PHP || mcr.microsoft.com/devcontainers/php || WordPressを含むPHPアプリケーション&lt;br /&gt;
|-&lt;br /&gt;
| C# / .NET || mcr.microsoft.com/devcontainers/dotnet || ASP.NET Core等のC#アプリケーション&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カスタムDockerfile ====&lt;br /&gt;
devcontainer.jsonからカスタムDockerfileを参照することにより、詳細な環境構築ができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;.devcontainer/&amp;lt;/u&amp;gt; ディレクトリに &amp;lt;u&amp;gt;Dockerfile&amp;lt;/u&amp;gt; を配置し、devcontainer.jsonで参照する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;Custom Environment&amp;quot;,&lt;br /&gt;
    &amp;quot;build&amp;quot;: {&lt;br /&gt;
       &amp;quot;dockerfile&amp;quot;: &amp;quot;Dockerfile&amp;quot;,&lt;br /&gt;
       &amp;quot;context&amp;quot;: &amp;quot;..&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;customizations&amp;quot;: {&lt;br /&gt;
       &amp;quot;vscode&amp;quot;: {&lt;br /&gt;
          &amp;quot;extensions&amp;quot;: [&amp;quot;ms-python.python&amp;quot;]&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムDockerfileの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 FROM mcr.microsoft.com/devcontainers/python:3.11&lt;br /&gt;
 &lt;br /&gt;
 # 追加パッケージのインストール&lt;br /&gt;
 RUN apt-get update &amp;amp;&amp;amp; apt-get install -y \&lt;br /&gt;
    postgresql-client \&lt;br /&gt;
    redis-tools \&lt;br /&gt;
    &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists/*&lt;br /&gt;
 &lt;br /&gt;
 # Pythonパッケージのインストール&lt;br /&gt;
 COPY requirements.txt /tmp/&lt;br /&gt;
 RUN pip install -r /tmp/requirements.txt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Docker Composeとの連携 ====&lt;br /&gt;
データベースや外部サービスを含む複数コンテナ構成には、Docker Composeと連携できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
devcontainer.jsonで &amp;lt;code&amp;gt;dockerComposeFile&amp;lt;/code&amp;gt; と &amp;lt;code&amp;gt;service&amp;lt;/code&amp;gt; を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;Full Stack Application&amp;quot;,&lt;br /&gt;
    &amp;quot;dockerComposeFile&amp;quot;: &amp;quot;docker-compose.yml&amp;quot;,&lt;br /&gt;
    &amp;quot;service&amp;quot;: &amp;quot;app&amp;quot;,&lt;br /&gt;
    &amp;quot;workspaceFolder&amp;quot;: &amp;quot;/workspace&amp;quot;,&lt;br /&gt;
    &amp;quot;customizations&amp;quot;: {&lt;br /&gt;
       &amp;quot;vscode&amp;quot;: {&lt;br /&gt;
          &amp;quot;extensions&amp;quot;: [&amp;quot;ms-python.python&amp;quot;]&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応する &amp;lt;u&amp;gt;docker-compose.yml&amp;lt;/u&amp;gt; の例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 services:&lt;br /&gt;
    app:&lt;br /&gt;
       build: .&lt;br /&gt;
       volumes:&lt;br /&gt;
          - ../..:/workspace:cached&lt;br /&gt;
       command: sleep infinity&lt;br /&gt;
 &lt;br /&gt;
    db:&lt;br /&gt;
       image: postgres:15&lt;br /&gt;
       environment:&lt;br /&gt;
          POSTGRES_PASSWORD: devpassword&lt;br /&gt;
 &lt;br /&gt;
    redis:&lt;br /&gt;
       image: redis:7&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Codespace内での開発 ==&lt;br /&gt;
==== VS Code (ブラウザ版/デスクトップ版) ====&lt;br /&gt;
Codespaceには、Webブラウザ および デスクトップのVS Codeから接続できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウザ版VS Code&lt;br /&gt;
*: セットアップ不要でブラウザから直接利用できる。&lt;br /&gt;
*: 一部の機能 (ローカルファイルへのアクセス等) に制限がある。&lt;br /&gt;
* デスクトップ版VS Code&lt;br /&gt;
*: フルの機能を利用できる。&lt;br /&gt;
*: Codespace内で[F1]キーを押下してコマンドパレットを開いて、Open in VS Code Desktop を実行することで切り替えられる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デスクトップ版への接続にはVS Codeと GitHub Codespaces拡張機能が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ターミナル ====&lt;br /&gt;
Codespace内のターミナルはUbuntu Linux環境を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ターミナルはVS Codeのメニューから[Terminal] - [New Terminal]で開く または [Ctrl] + [`]キーで開ける。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトではbashが使用されるが、devcontainer.jsonの設定によりZshやFishに変更できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Git操作 ====&lt;br /&gt;
CodespaceはGit操作に対応しており、GITHUB_TOKENによる自動認証が設定されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
HTTPS経由のGit操作は追加の認証設定なしで実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeのソースコントロールビューから以下に示す操作が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ファイルのステージング ([+]ボタン)&lt;br /&gt;
* コミットメッセージの入力とコミット実行&lt;br /&gt;
* リモートへのプッシュ&lt;br /&gt;
* Pull Requestの作成 (GitHub Pull Requests拡張機能使用時)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CLIからのGit操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # ファイルのステージング&lt;br /&gt;
 git add .&lt;br /&gt;
 &lt;br /&gt;
 # コミット&lt;br /&gt;
 git commit -m &amp;quot;&amp;lt;コミットメッセージ&amp;gt;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # プッシュ&lt;br /&gt;
 git push origin &amp;lt;ブランチ名&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ポートフォワーディング ====&lt;br /&gt;
Codespace内で起動したサービスのポートは、ポートフォワーディングによりブラウザからアクセスできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、ポートフォワーディングの方法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ポート転送の方法一覧&lt;br /&gt;
|-&lt;br /&gt;
! 方法 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 自動転送 || アプリケーションがlocalhostのポートにバインドすると、&amp;lt;br&amp;gt;VS Codeが自動的に検出してポートを転送する。&lt;br /&gt;
|-&lt;br /&gt;
| 手動転送 || VS CodeのPORTSタブで[+]ボタンを押下して、&amp;lt;br&amp;gt;転送するポート番号を手動で入力する。&lt;br /&gt;
|-&lt;br /&gt;
| devcontainer.jsonでの事前定義 || &amp;lt;code&amp;gt;forwardPorts&amp;lt;/code&amp;gt; フィールドに転送するポートを記述することにより、&amp;lt;br&amp;gt;Codespace起動時に自動的に設定される。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
転送されたポートのアクセス制御設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ポートアクセス制御の設定&lt;br /&gt;
! 設定 !! 説明 !! 用途&lt;br /&gt;
|-&lt;br /&gt;
| Private (デフォルト) || Codespacesの認証が必要 || 個人開発、機密情報を含む環境&lt;br /&gt;
|-&lt;br /&gt;
| Organization || 同一組織のメンバーのみアクセス可 || チーム内での共有、デモ&lt;br /&gt;
|-&lt;br /&gt;
| Public || 認証なしで誰でもアクセス可 || 外部へのデモ、一時的な公開&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Live Share ====&lt;br /&gt;
VS CodeのLive Share機能を使用することにより、Codespace内での共同編集が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Live Shareを開始するには、VS CodeのLive Share拡張機能をインストールして、共有セッションを開始する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
参加者はCodespaceのURLを持っていなくても、Live ShareのリンクからCodespace内のファイルを閲覧・編集できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 個人設定 ==&lt;br /&gt;
==== dotfiles ====&lt;br /&gt;
dotfilesリポジトリを使用することで、全てのCodespaceに個人の設定を自動的に適用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# GitHubに &amp;lt;code&amp;gt;dotfiles&amp;lt;/code&amp;gt; という名前のリポジトリを作成する。&lt;br /&gt;
# &amp;lt;u&amp;gt;install.sh&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;bootstrap.sh&amp;lt;/u&amp;gt; 等のインストールスクリプトを配置する。&lt;br /&gt;
# [Settings] - [Codespaces] - [Dotfiles] - [Automatically install dotfiles from your dotfiles repository]を有効にする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Codespaceが作成されるとdotfilesリポジトリが自動的にクローンされ、インストールスクリプトが実行される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
dotfilesに含めると便利な設定ファイルの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.bashrc&amp;lt;/u&amp;gt; / &amp;lt;u&amp;gt;.zshrc&amp;lt;/u&amp;gt;&lt;br /&gt;
*: シェルの設定とエイリアス&lt;br /&gt;
* &amp;lt;u&amp;gt;.gitconfig&amp;lt;/u&amp;gt;&lt;br /&gt;
*: Gitのユーザ名、メールアドレス、エイリアス&lt;br /&gt;
* &amp;lt;u&amp;gt;.vimrc&amp;lt;/u&amp;gt;&lt;br /&gt;
*: Vimの設定&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Settings Sync ====&lt;br /&gt;
VS CodeのSettings Sync機能を使用することにより、デスクトップ版VS CodeとCodespace (Webブラウザ版) 間で設定を同期できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
同期される設定の種類を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* キーボードショートカット&lt;br /&gt;
* インストール済み拡張機能&lt;br /&gt;
* UIの状態 (パネルの配置等)&lt;br /&gt;
* スニペット&lt;br /&gt;
* タスクとデバッグ設定&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Settings Syncを有効にするには、VS Codeのアカウントメニューから[Sign in to Sync Settings]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== デフォルトエディタ ====&lt;br /&gt;
Codespaceに接続する時のデフォルトエディタは、[Settings] - [Codespaces] - [Editor preference]から設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
選択可能なエディタを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Visual Studio Code (デスクトップ版)&lt;br /&gt;
* Visual Studio Code for the Web (Webブラウザ版)&lt;br /&gt;
* JetBrains Gateway (JetBrains製IDE向け)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GPGコミット署名 ====&lt;br /&gt;
CodespaceではGPGを使用したコミット署名をサポートしている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[Settings] - [SSH and GPG keys]からGPGキーを登録した後、Codespace内のgit設定でGPG署名を有効化することで署名付きコミットが可能になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git config --global commit.gpgsign true&lt;br /&gt;
 git config --global user.signingkey &amp;lt;GPGキーID&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Codespaceの管理 ==&lt;br /&gt;
==== 起動・停止・削除 ====&lt;br /&gt;
作成済みのCodespaceは、github.com/codespaces (Your codespaces) ページで一覧表示・管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
各Codespaceに対して実行できる操作を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 起動 (Open)&lt;br /&gt;
*: CodespaceをWebブラウザで開く。&lt;br /&gt;
* 停止 (Stop codespace)&lt;br /&gt;
*: Codespaceを停止する。&lt;br /&gt;
*: 停止中はストレージのみ課金される。&lt;br /&gt;
* 削除 (Delete)&lt;br /&gt;
*: Codespaceを完全に削除する。&lt;br /&gt;
*: 保存されていない変更は失われる。&lt;br /&gt;
* 名前変更 (Rename)&lt;br /&gt;
*: Codespaceに任意の名前を付ける。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CLIからの管理コマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Codespace一覧の表示&lt;br /&gt;
 gh codespace list&lt;br /&gt;
 &lt;br /&gt;
 # Codespaceの停止&lt;br /&gt;
 gh codespace stop -c CODESPACE_NAME&lt;br /&gt;
 &lt;br /&gt;
 # Codespaceの削除&lt;br /&gt;
 gh codespace delete -c CODESPACE_NAME&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== タイムアウト設定 ====&lt;br /&gt;
一定時間操作がない場合、Codespaceは自動的に停止する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトのタイムアウト時間は30分であり、[Settings] - [Codespaces] - [Default idle timeout]から変更できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
選択可能なタイムアウト時間を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 5分&lt;br /&gt;
* 15分&lt;br /&gt;
* 30分 (デフォルト)&lt;br /&gt;
* 60分&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
組織の管理者はポリシーによってタイムアウトの最大値を制限できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 自動削除 (リテンション) ====&lt;br /&gt;
停止状態のまま一定期間放置されたCodespaceは自動的に削除される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトのリテンション期間は30日であり、[Settings] - [Codespaces] - [Default retention period]から変更できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定可能な期間は1日から30日の範囲である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
削除前にGitHubから通知メールが送信されるが、コミット・プッシュされていない変更は失われるため注意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リビルド ====&lt;br /&gt;
Dev Containerの設定を変更した時は、Codespaceをリビルドして変更を反映できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リビルドの種類を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 通常リビルド&lt;br /&gt;
*: Dockerイメージのキャッシュを使用してリビルドする。&lt;br /&gt;
*: 変更のない層はキャッシュが再利用されるため高速に完了する。&lt;br /&gt;
* フルリビルド&lt;br /&gt;
*: キャッシュをクリアして最初からリビルドする。&lt;br /&gt;
*: キャッシュ起因の問題を解決する場合に使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeからリビルドするには、コマンドパレットで以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 通常リビルド&lt;br /&gt;
*: Codespaces: Rebuild Container&lt;br /&gt;
* フルリビルド&lt;br /&gt;
*: Codespaces: Full Rebuild Container&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CLIからのリビルドコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 通常リビルド&lt;br /&gt;
 gh codespace rebuild -c CODESPACE_NAME&lt;br /&gt;
 &lt;br /&gt;
 # フルリビルド&lt;br /&gt;
 gh codespace rebuild --full -c CODESPACE_NAME&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== プリビルド ==&lt;br /&gt;
==== プリビルドとは ====&lt;br /&gt;
プリビルドは、大規模なリポジトリでのCodespace作成時間を短縮するための機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
通常、Codespace作成時にDev Containerのセットアップ (依存関係のインストール、ビルド等) が実行されるため、時間が掛かる場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プリビルドを設定すると、コードがプッシュされるたびにGitHub Actionsが自動的にDev Containerのセットアップを事前実行し、その結果をキャッシュする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プリビルドを使用することにより、新しいCodespaceを数分ではなく数秒で作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プリビルドの設定 ====&lt;br /&gt;
プリビルドはリポジトリ単位で設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリの[Settings] - [Codespaces] - [Prebuild configuration]を開く。&lt;br /&gt;
# [Set up prebuild]を選択する。&lt;br /&gt;
# プリビルドを実行するブランチを選択する。&lt;br /&gt;
# マシンタイプを選択する。&lt;br /&gt;
# プリビルドをトリガーするイベントを選択する。(コードプッシュ時、スケジュール、手動)&lt;br /&gt;
# リージョンを選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;プリビルドには、GitHub Actionsの実行時間が消費されることに注意する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プリビルドが有効な場合、Codespace作成画面にプリビルドマークが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== シークレット管理 ==&lt;br /&gt;
==== Codespaces用シークレット ====&lt;br /&gt;
APIキーや認証情報等のシークレットは、環境変数としてCodespaceに安全に注入できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
シークレットの設定方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* リポジトリレベルのシークレット&lt;br /&gt;
*: [Settings] - [Secrets and variables] - [Codespaces] - [New repository secret]から設定する。&lt;br /&gt;
*: そのリポジトリのCodespaceにのみ適用される。&lt;br /&gt;
* ユーザレベルのシークレット&lt;br /&gt;
*: [Settings] - [Codespaces] - [Codespaces secrets] - [New secret]から設定する。&lt;br /&gt;
*: 複数のリポジトリで共有できる個人用シークレットである。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定したシークレットはCodespace内で環境変数として自動的にエクスポートされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # シークレットの確認例&lt;br /&gt;
 echo $MY_API_KEY&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 制限事項 ====&lt;br /&gt;
シークレット管理には、以下に示す制限事項がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* シークレットの最大数&lt;br /&gt;
*: 1リポジトリまたはユーザあたり最大100個&lt;br /&gt;
* 各シークレットのサイズ&lt;br /&gt;
*: 最大48[KB]&lt;br /&gt;
* 名前の制限&lt;br /&gt;
*: GITHUB_ プレフィックスは使用禁止&lt;br /&gt;
* Dockerfile内での使用&lt;br /&gt;
*: Dockerfileのビルド時にはシークレットを参照できない。&lt;br /&gt;
*: postCreateCommandやアプリケーション実行時にのみ使用できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 組織での管理 ==&lt;br /&gt;
==== Codespacesポリシー ====&lt;br /&gt;
組織の管理者はCodespacesのポリシーを設定して、メンバーの利用を制御できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定可能なポリシーを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* アクセス制御&lt;br /&gt;
*: Codespacesを使用できるメンバーを制限する。&lt;br /&gt;
* リポジトリ制限&lt;br /&gt;
*: Codespacesを有効にするリポジトリを制限する。&lt;br /&gt;
* ネットワークポリシー&lt;br /&gt;
*: Codespace内からのネットワークアクセスを制限する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ポリシーは、[Organization]の[Settings] - [Codespaces]から設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== マシンタイプの制限 ====&lt;br /&gt;
管理者はメンバーが選択できるマシンタイプを制限できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、コスト管理のためにメンバーが32-coreマシンを使用できないように制限することが可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[Organization] - [Settings] - [Codespaces] - [Machine type policies]から設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 課金管理 ====&lt;br /&gt;
組織のCodespaces利用費の負担先は、以下に示す2通りから選択できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 組織負担&lt;br /&gt;
*: 組織のメンバーが使用したCodespacesの費用を組織が負担する。&lt;br /&gt;
*: [Settings] - [Codespaces] - [Codespaces access] - [Enabled for all members] または 特定のメンバーを選択する。&lt;br /&gt;
* メンバー負担&lt;br /&gt;
*: 各メンバーが個人アカウントで費用を負担する。&lt;br /&gt;
*: 組織のCodespaces機能を有効にしない場合のデフォルト動作である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
組織の利用状況は、[Organization] - [Billing]ページで確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
監査ログ (Audit Log) では、Codespaceの作成・削除・起動・停止等のイベントを追跡できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 課金 ==&lt;br /&gt;
==== 無料枠 ====&lt;br /&gt;
GitHubのプランに応じて毎月の無料枠が提供される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHubプランごとの無料枠&lt;br /&gt;
! プラン !! コンピュート (コア時間) !! ストレージ&lt;br /&gt;
|-&lt;br /&gt;
| Free || 120コア時間/月 || 15[GB]/月&lt;br /&gt;
|-&lt;br /&gt;
| Pro || 180コア時間/月 || 20[GB]/月&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
コア時間はCodespaceのコア数に使用時間を掛けた値である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、2-coreのCodespaceを10時間使用した場合、20コア時間を消費する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
無料枠を超えた分は従量課金となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コンピュート料金 ====&lt;br /&gt;
下表に、無料枠を超えた場合のコンピュート料金を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Codespacesのコンピュート料金&lt;br /&gt;
! マシンタイプ !! 料金&lt;br /&gt;
|-&lt;br /&gt;
| 2-core || $0.18/時間&lt;br /&gt;
|-&lt;br /&gt;
| 4-core || $0.36/時間&lt;br /&gt;
|-&lt;br /&gt;
| 8-core || $0.72/時間&lt;br /&gt;
|-&lt;br /&gt;
| 16-core || $1.44/時間&lt;br /&gt;
|-&lt;br /&gt;
| 32-core || $2.88/時間&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;コンピュート料金はCodespaceが起動している時間にのみ発生する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;停止中はコンピュート料金は発生しない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ストレージ料金 ====&lt;br /&gt;
Codespaceのストレージはコンテナの内容全体 (ソースコード、依存関係、ツール等) に対して課金される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ストレージ料金は $0.07/[GB]-月 である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ストレージ料金はCodespaceが停止中であっても、Codespaceが存在する限り発生する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;コストを抑えるために、使用しないCodespaceは削除することを推奨する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
</feed>