プロジェクトとエディターの設定をカスタマイズする

完了

機関のプロジェクトの 1 つに開発コンテナーをセットアップしました。 これで、Docker と Dev Containers 拡張機能を持つすべてのユーザーに対して "そのまま機能する" ようになりました。 依然として依存関係をインストールする必要があります。 また、認識していない Visual Studio Code 拡張機能が必要になる場合もあります。

さいわい、devcontainer.json ファイルを使用すると、すべてのプロジェクト設定を完全にカスタマイズし、自動化することができます。

devcontainer.json の詳細

Products Dashboard プロジェクトの .devcontainer/devcontainer.json ファイルにある主なオプションを見てみましょう。 すべてを一度に見るには少し長いため、セクションごとに見てみましょう。

[ビルド構成]

image プロパティを使って、コンテナー イメージと呼ばれるものに基づいて、コンテナーをどのように作成するかを定義します。

"image": "mcr.microsoft.com/devcontainers/python:0-3.11"
},

このイメージは devcontainers/images リポジトリでホストされており、そこからチェックアウトすることもできます。 このリポジトリ内のイメージはすべてビルド済みイメージであり、これによってワークフローが高速化され、.devcontainer/devcontainer.json 構成が簡単になります。

また、Dockerfile や Docker Compose ファイルというファイルを使って、設定を構成することもできます。 これらのファイルは .devcontainer フォルダーに保存されており、追加ソフトウェアのインストールなど、特定の設定要件をさらに構成することができます。 詳細については、開発コンテナーのドキュメントを参照してください。

特徴

開発コンテナーの "機能" は自己完結型であり、インストール コードと開発コンテナーの構成の共有可能なユニットです。 この名前は、いずれかを参照することで、自分自身やコラボレーターが使うツール、ランタイム、またはライブラリの "機能" をすばやく簡単に開発コンテナーに追加できるという考えに由来しています。

VS Code のコマンド [Dev Containers: Add Dev Container Configuration Files] (Dev Containers: 開発コンテナーの構成ファイルの追加) を使うと、Git や Azure CLI のインストールなど、既存の開発コンテナーの構成をカスタマイズするスクリプトの一覧が表示されます。

プロジェクト設定

このファイルの後半のセクションでは、プロジェクト構成を直接扱います。

customizations を使って、VS Code や GitHub Codespaces など、開発コンテナーをサポートする製品固有のプロパティを設定することができます。

たとえば、vscode.settings を設定すると、マシン固有の設定をコンテナーにコピーできます。 これらの設定は、Visual Studio Code セットアップで指定されている場合があります。 これらを settings に追加することで、このプロジェクトを開くすべてのユーザーに、VS Code のこれらの特定の設定が適用されるようになります。

この Python コンテナーでは、そのベース イメージ mcr.microsoft.com/devcontainers/python:0-3.11これらの設定を確認できます。 これにより、ユーザーの Python 編集エクスペリエンスが向上します。

  • customizations.vscode プロパティ内で extensions 配列を使用して、コンテナーへの接続時に Visual Studio Code にインストールするべき Visual Studio Code 拡張機能を指定できます。 Dev Containers を使用しているときに、通常の Visual Studio Code セットアップと、既にあるすべての拡張機能が存在するとは限りません。 拡張機能はその ID でここに指定されます。

postCreateCommand

postCreateCommand プロパティを使うと、コンテナーの作成後に任意のコマンドを実行できます。 最初の演習で学習したように、pip3 コマンドを実行して、依存関係をインストールする必要があります。 しかし、どうしたらそれがわかるでしょうか? わからない可能性もあります。 自動的に実行されるようにここで構成して、他のユーザーが心配する必要がないようにします。

次の演習では、devcontainer.json ファイルを変更してプロジェクトのいくつかの部分を自動化し、他の開発者がすぐに操作を正常に実行できるように設定します。