コンテンツにスキップ

Devbox - 再現可能な開発環境 チートシート

Devbox - 再現可能な開発環境 チートシート

Devbox(Jetify)は 分離・再現可能な開発環境を Docker または仮想マシンなしで構築。Nix で構築されますが、JSON 設定(devbox.json)と親しみやすい CLI の背後に Nix 言語を隠します — devbox add nodejs@20 を実行して Nix derivation 書きません。結果:チーム全員(と CI)が正確なバージョンにピンされた同じツールチェーン、ホストシステムから分離を取得。

インストール

方法コマンド
インストールスクリプト`curl -fsSL https://get.jetify.com/devbox
要件Nix(Devbox がインストール可能)
確認devbox version

始める

コマンド説明
devbox initプロジェクトに devbox.json 作成
devbox add nodejs@20 python@3.12パッケージ追加(ピンバージョン)
devbox rm pythonパッケージ削除
devbox installdevbox.json 内すべてインストール
devbox shell分離環境に入る
devbox run <script>環境内で定義スクリプト実行

パッケージ管理

コマンド説明
devbox add go@1.22特定バージョンを追加
devbox search postgresqlNix パッケージカタログ検索
devbox listインストール済みパッケージ一覧
devbox updateパッケージを許可された最新版へ更新
devbox info nodejsパッケージ詳細表示

バージョンは Nixpkgs カタログに対して解決されるため、nodejs@20 はどこでも再現可能。

設定(devbox.json

{
  "packages": ["nodejs@20", "python@3.12", "postgresql@16"],
  "shell": {
    "init_hook": ["echo 'Welcome to the project env'"],
    "scripts": {
      "dev": "npm run dev",
      "test": "npm test",
      "db": "pg_ctl start"
    }
  }
}
フィールド目的
packagesピンツール/言語バージョン
shell.init_hookシェル入時に実行コマンド
shell.scripts名前付きコマンド(devbox run dev
envプロジェクト環境変数

シェル・スクリプト

コマンド説明
devbox shell対話的分離シェル
devbox run devdev スクリプト実行
devbox run -- npm ci環境内で任意コマンド実行
exitDevbox シェル終了

サービス(プロセス管理)

Devbox はプロジェクト用バックグラウンドサービス(データベースなど)管理可能。

コマンド説明
devbox services ls設定済みサービス一覧
devbox services upサービス開始
devbox services stopサービス停止
devbox add postgresql --start-servicesサービスバック付きパッケージ追加

CI・コンテナ

用途実行方法
CIDevbox インストール、devbox run test 実行 — ローカルと同じ環境
Dockerdevbox generate dockerfile が再現可能イメージ生成
Devcontainerdevbox generate devcontainer で VS Code 用
Direnvdevbox generate direnvcd 時に自動入

一般的なワークフロー

# ゼロからプロジェクト環境を構築
devbox init
devbox add nodejs@20 postgresql@16
devbox shell           # node + postgres が利用可能、ピン済み

# ローカルと CI で同じ方法でタスク実行
devbox run test

# 同じ定義から Docker イメージ生成
devbox generate dockerfile

Devbox vs 代替案

項目DevboxDev ContainersNix(生)mise
バックエンドNixDockerNix独自レジストリ
設定JSONdevcontainer.jsonNix 言語.mise.toml
分離実(Nix store)コンテナツールバージョン
学習曲線緩和中程度急勾配緩和
最適用途再現環境・簡単コンテナベース開発完全 Nix 力バージョン管理

Nix の基礎力も参照。コンテナベース開発は devcontainer。ツールバージョン管理は mise

リソース