DevPod - オープンソース開発環境コード チートシート
DevPod(Loft)は クライアントのみ・オープンソースツール — 標準 devcontainer.json から 任意バックエンド上で再現可能開発環境構築。ローカル Docker、リモート SSH マシン、Kubernetes クラスター、クラウド VM など。自ホスト無意見な GitHub Codespaces:任意 IDE(VS Code、JetBrains、ブラウザ)で動作。プラグ可能 providers でどこで実行するか制御。サーバーコンポーネント運用なし。
インストール
| 方法 | 実行方法 |
|---|
| CLI | GitHub Releases から Linux/macOS/Windows ダウンロード |
| Desktop app | DevPod Desktop GUI 利用可能 |
| 要件 | プロバイダーバックエンド(Docker、SSH host、K8s、クラウド) |
| 確認 | devpod version |
プロバイダー(環境実行場所)
| コマンド | 説明 |
|---|
devpod provider add docker | ローカル Docker を使用 |
devpod provider add ssh --option HOST=user@host | リモートマシン使用 |
devpod provider add kubernetes | K8s クラスター内実行 |
devpod provider add aws (gcloud、azure) | クラウド VM プロバイダー |
devpod provider list | 設定済みプロバイダー一覧 |
devpod provider use docker | デフォルトプロバイダー設定 |
ワークスペース作成
| コマンド | 説明 |
|---|
devpod up . | 現在リポジトリの devcontainer から環境開始 |
devpod up github.com/org/repo | Git リポジトリ URL から |
devpod up . --ide vscode | 特定 IDE で開く |
devpod up . --provider kubernetes | バックエンド選択 |
devpod up . --recreate | ワークスペース再構築 |
ワークスペース管理
| コマンド | 説明 |
|---|
devpod list | ワークスペース一覧 |
devpod stop <name> | ワークスペース停止 |
devpod delete <name> | ワークスペース削除 |
devpod ssh <name> | ワークスペースに SSH |
devpod status <name> | ワークスペース状態表示 |
devcontainer.json(spec)
DevPod はオープン Dev Container spec を使用。同じファイルが Codespaces・VS Code・DevPod で動作。
{
"name": "my-project",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/devcontainers/features/node:1": { "version": "20" }
},
"postCreateCommand": "npm install",
"customizations": {
"vscode": { "extensions": ["dbaeumer.vscode-eslint"] }
}
}
| フィールド | 目的 |
|---|
image / dockerfile | ベース環境 |
features | 構成可能アドオン(言語・ツール) |
postCreateCommand | 作成後実行セットアップ |
forwardPorts | ポート公開 |
customizations | IDE 固有設定/拡張 |
IDE 統合
| IDE | 実行方法 |
|---|
| VS Code | --ide vscode(デスクトップ・ブラウザ) |
| JetBrains | --ide goland/pycharm/... |
| ブラウザ(openvscode) | --ide openvscode |
| SSH/terminal | devpod ssh <name> |
一般的なワークフロー
# リポジトリの devcontainer からのローカル Docker 開発環境
devpod provider add docker
devpod up github.com/org/project --ide vscode
# 重いビルドを力強いリモートマシンにオフロード
devpod provider add ssh --option HOST=me@build-server
devpod up . --provider ssh
# Kubernetes での一時的クラウド環境、完了時削除
devpod up . --provider kubernetes
devpod delete my-project
DevPod vs 代替案
| 項目 | DevPod | GitHub Codespaces | Devbox | Gitpod |
|---|
| ホスティング | 任意バックエンド(自選択) | GitHub クラウド | ローカル(Nix) | クラウド/自ホスト |
| Spec | devcontainer.json | devcontainer.json | devbox.json | Gitpod 設定 |
| サーバー | なし(クライアントのみ) | 管理 | なし | サーバー |
| 最適用途 | 移植可能、任意クラウド開発 | GitHub ゼロ設定 | 再現可能ローカル | Git トリガーワークスペース |
DevPod は Codespaces と同じ devcontainer spec を使用。ローカル Nix ベース環境の場合は Devbox 参照。
リソース