とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど

開催予定の勉強会

読者登録と各種SNSのフォローもよろしくお願いいたします。

ローカルを汚さない開発ができるDevbox(≠Dev Box)を触ってみた

ローカルを汚さない開発してますか?
弊社でもVisual Studio Codeのリモート開発機能を使った検証を行っています。ある程度使いこなせるようになってきたので、他ツールにも手を出しながら比較検討もやり始めました。

次なるツールは、Devboxです。
チュートリアルをこなしてから後で情報整理中に気づいたのですが、「Devbox」と「Dev Box」の2つの似た名前のサービスが世の中に存在するようです。
Jetpack社が提供しているサービスが「Devbox」で、Microsoft社が提供してるサービスが「Microsoft Dev Box」となります。

略して呼ぶことが多いと思うので、呼び方をどうするか悩ましいところですね。

Devbox(Jetpack社)

開発用に分離されたシェルを簡単に作成できるコマンドラインツールで、オープンソースかつ、無料で使用できるものになります。
毎回イメージをビルドしてコンテナを立ち上げるわけではないので、サクッと使える点もメリットの1つです。
しかし、仮想化技術を活用して隔離された環境上にパッケージやツールをインストールするわけではなく、あくまでインストール先はローカルマシン上になります。インストールされた情報は、独自のパッケージ管理マネージャーのようなもので管理されているような形です。

また、Visual Studio Codeの拡張機能もサポートされていましたが、現時点では主要なコマンドがコマンドパレットから呼び出せるようになるくらいの、必要最低限でした。VS Codeユーザとしては、今後の発展に期待したいところですね。

www.jetpack.io

使い方

百聞は一見にしかず、ということで実際に触ってみることにします。
他にも色々なやり方が掲載れていますので、興味がある方は公式サイトをご覧ください。

www.jetpack.io

インストール

次のコマンドを実行して、CLIツールをインストールします。完了したらdevbox versionなどのコマンドで正しく実行されるか確認してください。

curl -fsSL https://get.jetpack.io/devbox | bash

初期化

次に初期化コマンドを実行します。

devbox init

パッケージの追加

いくつかパッケージを追加していきます。今回は、公式サイトにあるチュートリアルで インストールしているパッケージを使用しています。

devbox add ripgrep

ripgrepってなんだろう?と思っていたら、 現在のディレクトリで正規表現パターンを再帰的に検索する行指向の検索ツール、のようですね。
ローカルで使っていないツールが良かったので、個人的にはこのツールのまま進めていこうと思います。

github.com

次にPythonのパッケージをインストールしていきます。

devbox add python@3.10

devbox.jsonの確認

ここまでいくつかのコマンドを実行してきましたが、ここでdevbox.jsonファイルを見てみましょう。
devbox.jsonは、 環境構築に必要な情報がまとめられた設定ファイルのようなものです。
他にもいろいろな設定ができると思いますが、今回はチュートリアルで示されている内容の通りに進めていこうと思います。

環境構築の実行

これで準備は終了です。 コマンドを実行して、実際に開発環境立ち上げてみましょう。

devbox shell

実行したらわかると思いますが、見た目的な変化はほとんどありません。この点は、いいのか?悪いのか?という感じではありますが、勘違い防止のためにももう少し違う見た目にして欲しかったところはあります。

最後に

今回は、普段使いしているVisual Studio Codeのリモート開発機能以外の選択肢として、Devboxに目を向けてみました。
リモート開発機能は、事前に定義された設定ファイルを元にDockerコンテナを立ち上げます。しかし、 イメージビルドなどのプロセスを挟むため、環境が立ち上がるまでに少し時間がかかります。

その点ではDeboxにはそのような工程がなく、比較的短い時間で使用できます。開発環境の構成を模索段階で頻繁に変更が加えられるような状況下では、 使い勝手が良いように思いました。

また、必要に応じてDockerfileやdevcontainer.jsonを生成することもできるので、下準備ツールとしての活用もアリかな、と思っています。

次回は、名前が似ていたもう片方の「Dev Box」の方を触ってみたいと考えています。