【デブポッド】

DevPod とは?

最終更新:
💡 開発環境の定義は共通に、動かす場所は選べる

Dev Containerの定義を使い、ローカル・リモート・クラウドに開発用コンテナを作り、手元のIDEから接続できるオープンソースツール。

📌 このページのポイント
DevPod — 定義を共有し、実行先を選ぶ devcontainer.json 開発環境の定義ファイル DevPod Docker ローカル コンテナ AWS / GCP クラウドVM 停止は設定に依存 Kubernetes Pod として デプロイ CPU・保存データ・認証は、環境定義とは別に管理
DevPod のワークスペースプロビジョニングのイメージ
ひよこ ひよこ
チームで「自分のPCでは動く」という違いを減らせる?
ペンギン先生 ペンギン先生
devcontainer.jsonに開発用コンテナの設定を共有すると、言語やツールの構成をそろえやすいよ。DevPodはその定義を使って環境を作る役。ただしCPUの種類、マウントしたファイル、秘密情報などは別に管理するので、すべての環境差が消えるわけではないんだ。
ひよこ ひよこ
GitHub Codespacesと同じものなの?
ペンギン先生 ペンギン先生
共通のDev Container仕様を使う別のツールだよ。CodespacesはGitHubが提供する開発環境サービスで、DevPodは自分で選んだ実行先へ環境を作る。接続先のアカウントや権限、費用は自分たちで管理する必要があるんだ。
ひよこ ひよこ
実行先はどう選ぶの?
ペンギン先生 ペンギン先生
Providerを選んで設定するよ。例えばDocker Providerなら手元のDocker、AWS ProviderならEC2、SSH Providerなら接続できるサーバーを使う。ローカルのDockerで試す場合も、Dockerを動かせることや必要なイメージを取得できることが前提だね。
ひよこ ひよこ
コードを書く画面もDevPodが提供するの?
ペンギン先生 ペンギン先生
DevPodは環境を準備してIDEにつなぐ道具で、IDEそのものではないよ。VS CodeやJetBrains系のIDEを選んだり、SSHで接続したりできる。使うIDEのライセンスや、リモート接続に必要な条件はそれぞれ確認しよう。
ひよこ ひよこ
自動停止があるならクラウド料金は心配しなくていい?
ペンギン先生 ペンギン先生
停止機能は費用を抑える助けになるけど、対応するProviderや設定を確認する必要があるよ。VMが止まってもストレージなどの料金が残る場合があるし、削除するとデータを失うこともある。停止・削除・保存先を分けて確認しようね。
もっと詳しく知りたい人へ

開発環境を再現するために何を管理する?

devcontainer.jsonだけでなく、Dockerfileやイメージのバージョン、依存関係のロックファイルも管理します。ソース、永続データ、認証情報は環境定義とは別です。接続先を変えるだけで既存データや秘密情報が自動的に移ると考えず、共有方法と保存先を確認してください。

Providerを選ぶときに見るべきことは?

必要な実行先に対応するかに加え、認証方法、必要な権限、起動・停止・削除の処理、非アクティブ時の停止設定を確認します。VMを作成するMachine Providerと、既存の実行先にコンテナを作るDocker・SSH・KubernetesなどのNon-Machine Providerでは、管理する資源の範囲が異なります。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「DevPod」って出てきたら「開発用コンテナを自分で選んだ場所に作り、IDEから使うためのツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「DevPod」 = 開発環境を扱うツールの製品名
💬 公式にはDevPodという製品名で案内されているよ。Dev Containerの定義と実行先、手元のIDEをつなぐツールなんだ

参考資料

← 用語集にもどる