devbase の全コマンドの構文、オプション、使用例をまとめたリファレンスです。
devbase のコマンドは 4 つのグループとトップレベルコマンドで構成されています。
graph TD
A[devbase] --> B[init]
A --> C[status]
A --> D[project]
A --> E[env]
A --> F[plugin / pl]
A --> G[snapshot / ss]
D --> D1["up / down / ps / logs / scale [name]"]
D --> D3["login [index]"]
D --> D4["build [image]"]
D --> D2["list [--no-interactive]"]
E --> E1[init / sync / list / set / get / delete / edit / project]
F --> F1[list / install / uninstall / update / info / sync]
F --> F2[repo add / repo remove / repo list / repo refresh]
G --> G1[create / list / restore / copy / delete / rotate]
containerグループは非推奨になりました。 旧devbase container <sub>はdevbase project <sub>のエイリアスとして当面動作しますが、実行時に非推奨警告を 表示します(移行期間後のリリースで削除予定)。新しいコマンドはprojectを使用してください。
各グループには短縮形が用意されています。
| グループ名 | エイリアス | 備考 |
|---|---|---|
plugin |
pl |
|
snapshot |
ss |
|
container |
ct |
非推奨(project へ移行してください) |
頻繁に使用するプロジェクト操作はトップレベルから直接実行できます。これらは project グループに自動転送されます。
| ショートカット | 転送先 |
|---|---|
devbase up [name] |
devbase project up [name] |
devbase down [name] |
devbase project down [name] |
devbase login [index] |
devbase project login [index] |
devbase build [image] |
bin/devbase の cmd_build(シェル実装)※ |
devbase ps [name] |
devbase project ps [name] |
devbase scale [name] <num> |
devbase project scale [name] <num> |
devbase list |
devbase project list |
Note:
logsはトップレベルシノニムを持ちません。devbase project logsを使用してください。※
buildの転送先について:devbase buildは他のショートカットのようにprojectグループ (Python 実装)へ転送されるのではなく、bin/devbaseのシェル実装cmd_buildに直接委譲されます。 base イメージの段階ビルド等を CWD で行う必要があるためで、devbase project buildとは実装経路が 異なります(名前指定はラッパーのcdで解決)。挙動上の入出力は同等ですが、実装は別物です。
コマンド名が一意に特定できる場合、先頭の数文字だけで実行できます。
# 以下は全て同じコマンド
devbase plugin list
devbase pl list
devbase p l
devbase pl lNote: 一意に特定できない場合は候補が表示されます。
devbase の初期セットアップを実行します。
devbase init
実行内容:
bin/devbaseを PATH に追加(~/.bashrc/~/.zshrc)- シェル補完スクリプトの登録
plugins.ymlの作成(存在しない場合)
現在の環境の状態をまとめて表示します。
devbase status
表示項目:
- コンテナの状態(起動中 / 停止中 / 未ビルド)
- インストール済みプラグイン一覧
- 環境変数の設定状況
- スナップショットの状態
devbase init 後に いま開いているシェルで devbase(PATH / 補完)を即時有効化するための source 用スクリプトです。devbase のサブコマンドではなく、bin/rc を直接 source して使います。
./bin/devbase init
. ./bin/rc # = source ./bin/rc (bash / zsh 共通)bin/rc は自身の場所から DEVBASE_ROOT を解決し、DEVBASE_ROOT/bin を PATH へ追加(冪等)したうえで、シェル補完を読み込みます(init が rc ファイルへ追記する有効化と同じ内容)。新しく開くシェルは init が rc に追記したブロックで自動有効化されるため、この手順は不要です。
プロジェクト(コンテナ)のライフサイクル管理と一覧表示を行うコマンド群です。
up / down / ps / logs / scale は省略可能な [name] 引数を取ります。[name]
を指定すると、現在のディレクトリに依存せず $DEVBASE_ROOT/projects/<name> を対象に
操作できます。
# 任意のディレクトリから adminer プロジェクトを起動
devbase project up adminer
# 省略時は従来どおりカレントディレクトリのプロジェクトを対象にする
cd $DEVBASE_ROOT/projects/adminer && devbase project up<name>は$DEVBASE_ROOT/projects/配下のプロジェクト名(devbase project listで確認可能)- 存在しない名前を指定するとエラーになり、利用可能なプロジェクト候補が表示されます
- 名前解決はラッパー (
bin/devbase) が対象ディレクトリへcdしてから実行します。 これによりbuild(シェル実装)を含む全操作が名前指定で成立します devbaseは PATH 上の実行ファイルとして子プロセスで起動されるため、このcdが 呼び出し元シェルの作業ディレクトリを変えることはありません
project login/project buildは[name]を取りません。 これらの単一引数はそれぞれindex/imageであり、[name]を許すとproject login 2/project build webが誤解釈される ため除外しています。一方、トップレベルシノニムdevbase build <name>/devbase login <name>は ラッパー (bin/devbase) の存在性判定($DEVBASE_ROOT/projects/<name>が実在すれば cd)で 名前解決されます(実在しない場合は従来どおりindex/imageとして下流へ渡されます)。
⚠ 衝突注意(footgun): トップレベルシノニムの名前解決は「存在性ベース」のため、本来 positional 引数として渡したい値が実在プロジェクト名と一致すると、その引数が名前解決の対象と なり project への
cdが優先されて引数の意味が変わります。例えばprojects/2が存在する状態のdevbase login 2は index=2 ではなく project2への操作に、projects/webが存在する状態のdevbase build webは image=web ではなく projectwebのビルドに化けます(scaleの service 引数 も同様)。これは「build carmo/login carmoでそのプロジェクトを操作する」意図的設計の トレードオフです。回避策: 衝突する場合は対象プロジェクトのディレクトリ内で実行するか、 明示的にそのプロジェクトへ切り替えてから(cd済みの状態で)コマンドを実行してください。
コンテナを起動します。
devbase project up [name]
devbase up [name]
- 起動時にスナップショットを自動作成(新世代 or 差分追加)
CONTAINER_SCALEの値に基づいてコンテナ数を決定- イメージの自動準備:
build:定義あり、イメージ未存在 →devbase buildを自動実行build:定義あり、イメージが7日以上古い →devbase build --no-cacheで再ビルドimage:のみ(公開イメージ)、未存在 →docker pullを自動実行image:のみ、前回 pull から7日以上経過 →docker pullで再取得 (前回 pull 日時は${DEVBASE_ROOT}/.cache/pulls/<image>の touch-file mtime で判定)- 閾値は
DEVBASE_IMAGE_MAX_AGE_DAYS環境変数で上書き可能(既定 7、不正値は警告して既定値)
コンテナを停止・削除します。
devbase project down [name]
devbase down [name]
- 停止時にスナップショットのローテーションを自動実行
コンテナにログインします。
devbase project login [index]
devbase login [index]
| パラメータ | 必須 | デフォルト | 説明 |
|---|---|---|---|
index |
いいえ | 1 |
ログインするコンテナの番号 |
# 1番目のコンテナにログイン
devbase login
# 2番目のコンテナにログイン
devbase login 2対象プロジェクトのコンテナ状態を docker compose ps で表示します。複数プロジェクトの
横断一覧は devbase project list を使用してください。
devbase project ps [name] [-a]
devbase ps [name] [-a]
| オプション | 説明 |
|---|---|
-a |
停止中のコンテナも表示 |
コンテナのログを表示します(トップレベルシノニムはありません)。
devbase project logs [name] [-f] [--tail N]
| オプション | 説明 |
|---|---|
-f |
ログをリアルタイムで追跡 |
--tail N |
末尾 N 行のみ表示 |
# 最新50行をリアルタイムで追跡
devbase project logs -f --tail 50既存のコンテナを再起動せずにスケールします。
devbase project scale [name] <num>
devbase scale [name] <num>
| パラメータ | 必須 | 説明 |
|---|---|---|
name |
いいえ | 対象プロジェクト名(省略時はカレント) |
<num> |
はい | コンテナ数 |
# コンテナを3台に増やす
devbase project scale 3
# 任意のディレクトリから adminer を3台に
devbase project scale adminer 3コンテナイメージをビルドします。
devbase project build [image]
devbase build [image]
| パラメータ | 必須 | 説明 |
|---|---|---|
image |
いいえ | ビルドするイメージ名(省略時は全イメージ) |
$DEVBASE_ROOT/projects/ 配下のプロジェクトを NAME / PLUGIN / STATUS の一覧で
表示します。
TTY(端末)ではデフォルトで対話選択になり、番号入力で選んだプロジェクトを
project up で起動します。パイプ・リダイレクト・CI などの非 TTY 環境では自動的に
一覧表示のみへフォールバックします。
devbase project list [--no-interactive|--plain|-P]
devbase list [--no-interactive|--plain|-P]
| オプション | 説明 |
|---|---|
--no-interactive / --plain / -P |
対話選択せず一覧表示のみ |
--interactive / -i |
(後方互換)対話選択。デフォルトのため通常は不要 |
# 一覧を表示して番号で選択・起動(TTY デフォルト)
devbase list
# 一覧表示のみ(選択しない)
devbase list --no-interactive出力例:
NAME PLUGIN STATUS
adminer adminer running (2 containers)
carmo carmo stopped
carmo.takemi carmo-fork stopped
PLUGIN列はシンボリックリンク先から解決するため、PLAN04 の同名衝突 suffix (例carmo.takemi)が付いていても正しいプラグイン名を表示しますSTATUSはrunning (N containers)/stopped/unknown(docker 未起動・compose.yml不在等で判定不能)のいずれか
非推奨:
containerグループはprojectグループへ移行しました。devbase container <sub>は当面devbase project <sub>のエイリアスとして動作しますが、実行時に非推奨警告を 表示します(移行期間後のリリースで削除予定)。[name]指定やlistなどの新機能はproject側のみで提供されます。
# 旧(非推奨・警告が出ます)
devbase container up
# 新(推奨)
devbase project up
devbase up環境変数の管理を行うコマンド群です。詳細は 環境変数ガイド を参照してください。
環境変数の対話式初期セットアップを実行します。
devbase env init [--reset]
| オプション | 説明 |
|---|---|
--reset |
既存の設定をリセットして再設定 |
ソースファイル(~/.aws/config 等)の変更を検出し、環境変数を再同期します。
devbase env sync
設定済みの環境変数を一覧表示します。
devbase env list [-g|-p] [-r] [-k]
| オプション | 説明 |
|---|---|
-g |
グローバル変数のみ表示 |
-p |
プロジェクト変数のみ表示 |
-r |
値も表示(デフォルトではキーのみ) |
-k |
キー名でソート |
# グローバル変数のみ、値付きで表示
devbase env list -g -r
# プロジェクト変数をキー名順で表示
devbase env list -p -k環境変数を設定します。
devbase env set KEY=VALUE [-p]
| オプション | 説明 |
|---|---|
-p |
プロジェクトレベルに設定(デフォルトはグローバル) |
# グローバルに設定
devbase env set ANTHROPIC_API_KEY=sk-xxx
# プロジェクトレベルに設定
devbase env set GCP_ACTIVE_PROFILE=my-project -p環境変数の値を取得します。
devbase env get KEY
devbase env get AWS_PROFILE環境変数を削除します。
devbase env delete KEY
デフォルトエディタで .env ファイルを開きます。
devbase env edit
プロジェクト固有の環境変数を対話式で設定します。
devbase env project
プラグインの管理を行うコマンド群です。
インストール済み、または利用可能なプラグインを一覧表示します。
devbase plugin list [--available]
| オプション | 説明 |
|---|---|
--available |
リポジトリから取得可能なプラグインを表示 |
プラグインをインストールします。
devbase plugin install <source>
ソースの指定形式:
| 形式 | 説明 | 例 |
|---|---|---|
| 名前のみ | 登録済みリポジトリから検索 | devbase plugin install adminer |
| リポジトリ直接指定 | 特定リポジトリのプラグイン | devbase plugin install user/repo:plugin-name |
| 全プラグイン一括 | リポジトリの全プラグインをインストール | devbase plugin install user/repo --all |
| ローカルリンク | ローカルディレクトリからリンク | devbase plugin install /path:plugin-name --link |
プラグインをアンインストールします。
devbase plugin uninstall <name>
プラグインを最新バージョンに更新します。
devbase plugin update [name]
| パラメータ | 必須 | 説明 |
|---|---|---|
name |
いいえ | 更新するプラグイン名(省略時は全プラグイン) |
プラグインの詳細情報を表示します。
devbase plugin info <name>
プロジェクトのシンボリックリンクを再同期します。
devbase plugin sync
旧形式 (plugins/<name> へのコピー) でインストールされたプラグインを、repos/ 配下の永続クローンへ移行します。install / update 実行時にも自動で呼び出されるため、通常は手動実行不要です。
devbase plugin migrate
移行の挙動:
| 状況 | 動作 |
|---|---|
| コピーがクローンと一致 | 旧コピーを削除し repos/ へ移行 (migrated) |
| コピーにローカル変更あり | 旧コピーを plugins/<name>.bak として保全 (preserved、手動で reconcile) |
| 移行できない (ソース未登録 等) | スキップしてエラーを表示 (skipped) |
--link でインストールしたプラグインは移行対象外です。
プラグインリポジトリを登録します。
devbase plugin repo add <url>
# GitHub ショートハンド
devbase plugin repo add user/repo
# 完全な URL
devbase plugin repo add https://github.com/user/repo.gitリポジトリの登録を削除します。
devbase plugin repo remove <name>
登録済みリポジトリの一覧を表示します。
devbase plugin repo list
プラグイン一覧をリポジトリから再取得します。
devbase plugin repo refresh [name]
| パラメータ | 必須 | 説明 |
|---|---|---|
name |
いいえ | 更新するリポジトリ名(省略時は全リポジトリ) |
スナップショットの管理を行うコマンド群です。詳細は スナップショットガイド を参照してください。
スナップショットを作成します。
devbase snapshot create [--name NAME] [--full]
| オプション | 説明 |
|---|---|
--name NAME |
スナップショット名を指定(デフォルトはタイムスタンプ) |
--full |
フルバックアップを強制作成 |
# 自動命名で差分スナップショット
devbase snapshot create
# 名前付きフルバックアップ
devbase snapshot create --name before-upgrade --fullスナップショットの一覧を表示します。
devbase snapshot list
スナップショットから復元します。
devbase snapshot restore <name> [--point N]
| パラメータ / オプション | 必須 | 説明 |
|---|---|---|
<name> |
はい | 復元するスナップショット名 |
--point N |
いいえ | N 番目の差分まで復元(省略時は最新まで全適用) |
Warning: 復元前に現在の状態が
pre-restore-<timestamp>として自動バックアップされます。
スナップショットをコピーします。
devbase snapshot copy <name> <new_name>
スナップショットを削除します。
devbase snapshot delete <name>
古い世代のスナップショットを削除します。
devbase snapshot rotate [--keep N]
| オプション | 説明 |
|---|---|
--keep N |
保持する世代数(デフォルト: 3) |