コンテンツにスキップ

2. コマンドラインインターフェース(CLI)

Build CLIを使うと、アプリとアカウントをコマンドラインから操作できます。画面を見ながらの作業や一度きりの操作なら、ダッシュボードのほうが手軽です。デプロイをスクリプト化する、設定変更を自動化する、ターミナルを離れずにアプリの状態を確認するといった場面では、CLIが力を発揮します。

この章では、CLIのインストール、Build.ioアカウントでの認証、そして覚えておくと便利な操作を順に説明します。コマンドの全一覧はCLIコマンドリファレンスを参照してください。

CLIは、各OSのパッケージマネージャーでインストールします。

$ brew install buildio/cli/bld
$ brew trust buildio/cli
> scoop bucket add buildio https://github.com/buildio/cli
> scoop install bld

インストールスクリプトを実行します:

$ curl -fsSL https://buildio.github.io/cli/install.sh | sh

スクリプトはBuild.ioのAPTリポジトリと署名鍵を登録し、bldをインストールします。対応アーキテクチャはamd64のみです。以降はsudo apt update && sudo apt upgradeでbldも更新されます。

CLIにパスが通っていることを確認します:

$ bld --version

確認できたら、次節の手順でログインします。

コマンドラインからアプリを操作するには、事前にCLIをBuild.ioアカウントで認証する必要があります。

認証にはloginコマンドを使用します:

$ bld login

デフォルトのWebブラウザが起動し、Build.ioのログインページが表示されます。ログインしてCLIを承認すると、認証情報がローカルに保存され、以降はコマンドを実行できるようになります。

ログイン状態はbld whoamiで確認できます:

$ bld whoami
you@example.com

所属組織でシングルサインオン(SSO)を導入している場合や、Build.ioのクラスターに直接認証する場合は、OIDCログインを使用します:

$ bld oidc-login

このコマンドはOpenID Connectで認証を行います。エンタープライズ構成の一部や、クラスターレベルのリソースにアクセスする場合は、OIDCによるログインが必須となることがあります。

ログインセッションは、明示的にログアウトするか、トークンが期限切れになるまで有効です。一定期間操作していない状態で認証エラーが発生した場合は、bld loginを再実行して認証情報を更新してください。

HerokuからBuild.ioへアプリを移行する際は、両方のCLIを組み合わせることで、環境設定をまとめて移行できます。

HerokuからConfig Varをインポートする

Section titled “HerokuからConfig Varをインポートする”

HerokuアプリのConfig Varは、エクスポートとインポートの2ステップでBuild.ioへ移行できます。 まず、Heroku CLIでConfig Varをファイルに書き出します:

$ heroku config -a your-heroku-app -s > env-backup

-sフラグを付けると、変数がシェル形式(KEY=value)で1行ずつ出力されます。この形式であれば、Build CLIがそのまま読み取れます。

次に、このファイルをBuild CLIに読み込ませ、新しいアプリへすべての変数を設定します:

$ bld config:set -a your-build-app < env-backup

config:setは、KEY=value形式の行をSTDINからそのまま読み取ります。heroku config -sやbld config -sの出力と同じシェル形式であるため、書き出したファイルをそのまま入力するだけで、環境設定を一括で再現できます。ただし、xargsへのパイプは使用しないでください。値に空白が含まれる場合、xargsが空白位置で値を分割します。

インポートの完了後、Config Varが正しく移行されているかを確認します:

$ bld config:list -a your-build-app

この出力を移行元のHerokuの設定と照合し、不足しているキーがないことを確認してください。

env-backupファイルには、APIキーやデータベースの認証情報といった機密情報が平文で含まれます。移行の完了後は必ず削除し、バージョン管理システムにはコミットしないでください:

$ rm env-backup