⚙️
Dev Containerで作る開発環境
はじめに
Dev Containerは、Dockerコンテナを利用して開発環境を管理する仕組みです。
VS CodeのDev Containers拡張機能を使えば、簡単に設定できます。
本記事では、図を用いて従来のローカル開発とDev Containerを利用した開発の違いを解説するとともに、そのメリットやデメリットを紹介します。
従来のローカル開発(例: Node.js環境)
一方で、Dev Containerを利用した場合の構成は次のようになります。
DevContainerを利用した開発(例: Node.js環境)
従来のローカル開発とDev Containerを利用した開発との違い
従来のローカル開発 | Dev Containerを利用した開発 | |
---|---|---|
プログラミング言語、実行環境、パッケージ管理 | ホストOSに直接配置(必要なライブラリやパッケージもホストOSで管理) | コンテナ内に配置(必要なライブラリやパッケージもコンテナ内で管理) |
VS Codeの拡張機能 | ローカル環境にインストール、extensions.jsonで管理 | コンテナ内のVS Code Serverにインストール、devcontainer.jsonで管理 |
Dev Containerを利用した開発のメリット・デメリット
メリット
環境の再現性
コンテナ内で統一された開発環境を提供するため、OSやツールのバージョン差によるトラブルを解消します。
さらに、定義ファイル(例: devcontainer.json)を使用することで、どのマシンでも同じ環境を簡単に再現可能です。
環境構築の簡略化
VS CodeのDev Containers拡張機能を利用すれば、以下のシンプルな手順で開発環境をセットアップ可能です:
- VS CodeとDockerのインストール
- VS CodeにDev Containers拡張機能を追加
- VS Codeの左下の><アイコンをクリックし、「Reopen in Container」を選択
これで、開発環境がすぐに利用可能になります。
デメリット
Dockerの基本知識が必要
Dev ContainerはDocker上で動作するため、エラーが発生した際にはDockerの基本操作や設定の知識が求められます。
(Dockerの基本を学ぶ際には、以下の記事が非常に参考になりました。)
高いPCスペックが必要
コンテナの動作にはCPUやメモリが必要で、PCスペックが低い場合には快適に動作しない可能性があります。開発効率を維持するには、ある程度の性能が求められます。
まとめ
Dev Containerを使えば、複雑な環境構築が簡単になり、どのPCでも同じ開発環境をすぐに整えられます。Dockerの知識やPCの性能は必要ですが、作業効率を大幅に向上させる便利なツールだと思います。
とくにチーム開発では、全員がすぐに同じ環境で作業できるため、プロジェクトがスムーズに進むことが期待できそうです。
各言語・フレームワークの環境構築手順はこちら
参考資料
Discussion