Introduction to dev containers

「devcontainer.json」ファイルを使用して、リポジトリの Codespaces 環境を定義できます。

People with write permissions to a repository can create or edit the codespace configuration.

Codespaces is available for organizations using GitHub Team or GitHub Enterprise Cloud. 詳しい情報については「GitHubの製品」を参照してください。

開発コンテナについて

開発コンテナ (development container)、または開発コンテナ (dev container) は、Codespaces がプロジェクトの開発に必要なツールとランタイムを提供するために使用する環境です。 If your project does not already have a dev container defined, Codespaces will use the default configuration, which contains many of the common tools that your team might need for development with your project. For more information, see "Using the default configuration."

If you want all users of your project to have a consistent environment that is tailored to your project, you can add a dev container to your repository. You can use a predefined configuration to select a common configuration for various project types with the option to further customize your project or you can create your own custom configuration. For more information, see "Using a predefined container configuration" and "Creating a custom codespace configuration." 選択するオプションは、ユーザのプロジェクトが上手くいくために必要なツール、ランタイム、依存関係、およびワークフローによって異なります。

Codespaces は、devcontainer.json ファイルを使用して、プロジェクトごとおよびブランチごとにカスタマイズできます。 この設定ファイルは、フレームワーク、ツール、機能拡張、およびポート転送を含めることができる開発コンテナを定義することにより、リポジトリ用に作成するすべての新しい codespace の環境を決定します。 Dockerfile を .devcontainer フォルダ内の devcontainer.json ファイルと一緒に使用して、コンテナイメージの作成に必要なすべてを定義することもできます。

devcontainer.json

このファイルは、リポジトリのルートもしくは.devcontainerというフォルダに置くことができます。 このファイルがリポジトリのルートに置かれた場合、ファイル名は.devcontainer.jsonというようにピリオドで始まらなければなりません。

devcontainer.json を使用して、エディタを含む codespace 環境全体のデフォルト設定をすることができますが、.vscode/settings.json という名前のファイルの codespace 内の個々のワークスペースにエディタ固有の設定をすることもできます。

devcontainer.json で可能な設定とプロパティについては、Visual Studio Code ドキュメントの devcontainer.json リファレンスを参照してください。

Dockerfile

Dockerfile は .devcontainer フォルダにもあります。

Dockerfile をプロジェクトに追加して、コンテナイメージを定義し、ソフトウェアをインストールできます。 Dockerfileでは、FROM を使用してコンテナイメージを指定できます。

FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-14

# ** [Optional] このセクションのコメントを解除して、追加のパッケージをインストールします。 **
# USER root
#
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
#     && apt-get -y install --no-install-recommends <your-package-list-here>
#
# USER codespace

RUN 命令を使用して任意のソフトウェアをインストールし、&& を使用してコマンドを結合できます。

dockerfile プロパティを使用して、devcontainer.json ファイルで Dockerfile を参照します。

{
  ...
  "build": { "dockerfile": "Dockerfile" },
  ...
}

開発コンテナでの Dockerfile の使用について詳しくは、Visual Studio Code ドキュメントの「開発コンテナの作成」を参照してください。

デフォルト設定を使用する

リポジトリで設定を定義しない場合、GitHub はベースの Linux イメージを使用して Codespaces を作成します。 ベース Linux イメージには、Python、Node.js、JavaScript、TypeScript、C++、Java、.NET、PHP、PowerShell、Go、Ruby、Rust などの言語とランタイムが含まれています。 また、git、GitHub CLI、yarn、openssh、vim などの他の開発者ツールやユーティリティも含まれています。 含まれているすべての言語、ランタイム、およびツールを表示するには、codespace 端末内で devcontainer-info content-url コマンドを使用し、コマンドが出力する URL に従います。

または、ベース Linux イメージに含まれるすべての詳細については、microsoft/vscode-dev-containers リポジトリの最新ファイルを参照してください。

Codespaces が提供する言語とツールを使用する小さなプロジェクトで作業している場合は、デフォルトの設定が適しています。

事前定義済みのコンテナ設定を使用する

事前定義済みのコンテナの定義には、特定のプロジェクトタイプの共通設定が含まれており、インストールする必要のある適切なコンテナオプション、Visual Studio Code 設定、および Visual Studio Code 機能拡張が既に含まれている設定を使用してすばやく開始できます。

追加の拡張性が必要な場合は、事前定義済みの設定を使用することをお勧めします。 事前定義済みの設定をひな形にして、プロジェクトの設定に合わせて修正することもできます。

  1. Access the VS Code Command Palette (Shift + Command + P / Ctrl + Shift + P), then start typing "dev container". Codespaces: Add Development Container Configuration Files...(Codespaces: 開発コンテナ設定ファイルを追加...)を選択してください。

    "Codespaces: Add Development Container Configuration Files..." in the VS Code Command Palette

  2. Click the definition you want to use. List of predefined container definitions

  3. Follow the prompts to customize your definition. For more information on the options to customize your definition, see "Adding additional features to your devcontainer.json file."

  4. [OK] をクリックします。 OK button

  5. To apply the changes, in the bottom right corner of the screen, click Rebuild now. For more information about rebuilding your container, see "Applying changes to your configuration." "Codespaces: Rebuild Container" in the VS Code Command Palette

Adding additional features to your devcontainer.json file

Note: This feature is in beta and subject to change.

You can add features to your predefined container configuration to customize which tools are available and extend the functionality of your workspace without creating a custom codespace configuration. For example, you could use a predefined container configuration and add the GitHub CLI as well. You can make these additional features available for your project by adding the features to your devcontainer.json file when you set up your container configuration.

You can add some of the most common features by selecting them when configuring your predefined container. For more information on the available features, see the script library in the vscode-dev-containers repository.

The select additional features menu during container configuration.

You can also add or remove features outside of the Add Development Container Configuration Files workflow.

  1. Access the Command Palette (Shift + Command + P / Ctrl + Shift + P), then start typing "configure". Select Codespaces: Configure Devcontainer Features. The Configure Devcontainer Features command in the command palette
  2. Update your feature selections, then click OK. The select additional features menu during container configuration.
  3. To apply the changes, in the bottom right corner of the screen, click Rebuild now. For more information about rebuilding your container, see "Applying changes to your configuration." "Codespaces: Rebuild Container" in the command palette

カスタム codespace 設定を作成する

事前設定済みの設定のいずれもニーズを満たさない場合は、devcontainer.json ファイルを追加してカスタム設定を作成できます。 このファイルは、リポジトリのルートもしくは.devcontainerというフォルダに置くことができます。 このファイルがリポジトリのルートに置かれた場合、ファイル名は.devcontainer.jsonというようにピリオドで始まらなければなりません。

このファイルでは、サポートされている設定キーを使用して、codespace の環境の要素を指定できます。たとえば、Visual Studio Code 拡張機能がインストールできます。

Visual Studio Codeのエディタ設定を行う際には、WorkspaceRemote [Codespaces]Userという3つのスコープが利用できます。 複数のスコープ内で定義された設定については、Workspaceの設定が優先され、次がRemote [Codespaces]、そしてUserとなります。

2 つの場所で Visual Studio Code のデフォルトのエディタ設定を定義できます。

  • .vscode/settings.json で定義されたエディタ設定は、Workspace スコープの設定として codespace に適用されます。
  • devcontainer.json設定キーで定義されたエディタ設定は、codespace の リモート [Codespaces] スコープ設定として適用されます。

After updating the devcontainer.json file, you can rebuild the container for your codespace to apply the changes. For more information, see "Applying changes to your configuration."

Applying changes to your configuration

リポジトリのためのCodespacesの設定が変更された後、codespaceのコンテナをリビルドしてその変更を既存のcodespaceに適用できます。

  1. Access the VS Code Command Palette (Shift + Command + P/ Ctrl + Shift + P), then start typing "rebuild". Codespaces: Rebuild Container(Codespaces: コンテナをリビルド)を選択してください。

    コンテナリビルドの選択肢

  2. codespaceの設定の変更でコンテナエラーが生じた場合、codespaceはリカバリモードで動作し、エラーメッセージが表示されます。 Fix the errors in the configuration. Error message about recovery mode

    • To diagnose the error by reviewing the creation logs, click View creation log.
    • To fix the errors identified in the logs, update your devcontainer.json file.
    • To apply the changes, rebuild your container.

このドキュメントは役立ちましたか?

プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?