⚙️

Dev Containerで作る開発環境

2024/12/26に公開

はじめに

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拡張機能を利用すれば、以下のシンプルな手順で開発環境をセットアップ可能です:

  1. VS CodeとDockerのインストール
  2. VS CodeにDev Containers拡張機能を追加
  3. VS Codeの左下の><アイコンをクリックし、「Reopen in Container」を選択

これで、開発環境がすぐに利用可能になります。

デメリット

Dockerの基本知識が必要

Dev ContainerはDocker上で動作するため、エラーが発生した際にはDockerの基本操作や設定の知識が求められます。
(Dockerの基本を学ぶ際には、以下の記事が非常に参考になりました。)

https://zenn.dev/suzuki_hoge/books/2022-03-docker-practice-8ae36c33424b59

高いPCスペックが必要

コンテナの動作にはCPUやメモリが必要で、PCスペックが低い場合には快適に動作しない可能性があります。開発効率を維持するには、ある程度の性能が求められます。

まとめ

Dev Containerを使えば、複雑な環境構築が簡単になり、どのPCでも同じ開発環境をすぐに整えられます。Dockerの知識やPCの性能は必要ですが、作業効率を大幅に向上させる便利なツールだと思います。
とくにチーム開発では、全員がすぐに同じ環境で作業できるため、プロジェクトがスムーズに進むことが期待できそうです。

各言語・フレームワークの環境構築手順はこちら

https://zenn.dev/takayuu/articles/4896350f623f07
https://zenn.dev/takayuu/articles/7469ca6285c962
https://zenn.dev/takayuu/articles/7c0f2d58be00cf

参考資料

https://envader.plus/article/305
https://future-architect.github.io/articles/20231206a/
https://code.visualstudio.com/docs/devcontainers/containers

Discussion