Visual Studio Codeを使用したDev Containersについて記載します。
なお、正確な情報や詳細な情報は公式ドキュメントも参照してください。
Dev Containersとは
公式ドキュメントには以下のように説明されています。
The Visual Studio Code Dev Containers extension lets you use a container as a full-featured development environment. It allows you to open any folder inside (or mounted into) a container and take advantage of Visual Studio Code's full feature set. A devcontainer.json file in your project tells VS Code how to access (or create) a development container with a well-defined tool and runtime stack. This container can be used to run an application or to separate tools, libraries, or runtimes needed for working with a codebase.
簡単に説明すると、Visual Studio Codeの拡張機能のDev Containers
を使用すると、コンテナーを開発環境として使うことができます。
一度この仕組みで環境を用意したら、各開発者でまったく同じ環境が利用できたり、開発環境の構築が容易になります。またコンテナーなのでローカルの環境が汚れないというメリットもあります。
例えば、プロジェクトAではNode.js16系を使用する。プロジェクトBではNode.js18系を使用と場合に、従来はnvmなどを使用し使用するNode.jsバージョンを切り替えて使う方法などを取っていましたが、これを使うことでその手間も省けます。
環境
この記事の作業は、以下の環境で確認しました。
- MacBook Air (M1, 2020)
- macOS Ventura
前提
この記事の手順を実施する前提として、以下が満たされている必要があります。
- Docker Desktopがインストールされている
- Visual Studio Codeがインストールされている
Dev Containersをインストールする
以下にVisual Studio Codeに拡張機能、Dev Containersをインストールする手順を記載します。
devcontainer CLIをインストールする
システムにdevcontainer CLIをインストールする手順を記載します。
devcontainer CLIとは、コマンドラインから各種操作を実行できるようにするためのコマンドです。
Visual Studio Codeからも操作はできますが、コマンドラインからも使用できると何かと役に立つと思います。
ターミナルなどからdevcontainer
コマンドが使用できるようになっていると思います。
もし使用できないならターミナルの再起動や、パスが通っているかなど確認してください。(この場合の詳細は割愛します)
Dev Containersの使用方法
実際の使用方法の一例を記載します。
以下の手順は、空のproject1
フォルダを開いた状態から開始しています。
-
完了するとファイル一覧に、
.devcontainers
フォルダが確認できます。この中にDev Containers
関連のファイルが自動で作成されています。
-
Visual Studio Code
のターミナルで、作成されたコンテナ上でのファイルやインストールされているツール類が使用できるようになっていることが確認できると思います。簡単な使用方法はこれで完了です。
最後に
作成されるコンテナ環境は、自動で作成された.devcontainer
フォルダ内のファイルに定義されています。Dockerfileなどを書き換えることでコンテナの環境を変更することもできます。
また、docker-compose.ymlなども使用できますし、既存のプロジェクトですでにコンテナ環境を用意している場合はそれを参照することもできるので柔軟性はあると思います。