devboxとは
miseやdev containerの代わりになるもので開発環境を統一するのに役立つ 内部ではnixが使われており、より扱いやすく管理するように作られている(nix language → json)
インストール方法
curl -fsSL https://get.jetify.com/devbox | bash基本的にはdevboxを使う際に作成されるjsonファイルで環境の復元が行われるような仕組み
ライブラリで初期化
devbox initjsonファイルが作成されていることを確認できる
{
"$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.16.0/.schema/devbox.schema.json",
"packages": [],
"shell": {
"init_hook": [
"echo 'Welcome to devbox!' > /dev/null"
],
"scripts": {
"test": [
"echo \"Error: no test specified\" && exit 1"
]
}
}
}必要なツールのインストール
例:jqをインストール
devbox add jq例:nodeをインストール
devbox add nodejs@22.14.0
例:ssm セッションマネージャープラグインインストール
devbox add ssm-session-manager-plugin@latest例:libreOfficeインストール
devbox add libreoffice-bin必要なパッケージが揃ったターミナルを起動
devbox shell↑ 毎回実行しなければならない
vscodeの拡張機能がある(https://marketplace.visualstudio.com/items?itemName=jetpack-io.devbox)
これを入れるとdevbox.jsonを認識すると自動でdevbox shellを実行してくれる
懸念
- デプロイなどでもdevboxを入れる必要が出てくる場合がある
- node,npmのパッケージマネージャーのversionがnvm,voltaのバージョン管理ツールと2重管理になる可能性がある
- 特定のルールを作ることが重要
※macOSのみ対応なので利用見送り miseはwindows対応なので使えるかも(?)
miseはasdfのレジストリだけでなく、npmやpipx、go、cargoさらにはaquaのレジストリ等が使えるので、対応してないツールは殆どないんじゃないかといった印象です。
https://mise.jdx.dev/dev-tools/backends/ またaquaのレジストリならツールの追加も簡単ですよ。
レポジトリごとに依存が出てくるなら採用しても良さそう そんなことなければ利用せずでいい気がする。
miseのほうがいいかも