終了コード
すべてのコマンドが、失敗の種類を示す終了コードを返します。スクリプトや エージェントは、出力を解析せずに分岐できます。
| コード | 意味 | 再試行の可否 |
|---|---|---|
0 | 成功 | |
1 | 分類できないエラー | 不可 |
4 | 見つからない(workspace / サービス / プロジェクト) | 不可 |
5 | すでに存在する | 不可 |
6 | minato.toml が見つからない | 不可 |
7 | minato.toml が不正 | 不可 |
8 | git リポジトリの外で実行された | 不可 |
9 | コンテナランタイムに接続できない | 可 |
10 | ランタイムの操作が失敗した | 不可 |
11 | 未対応の機能 | 不可 |
「再試行の可否」は、何も変更せずに再実行しても成功しうるかどうかを示します。 該当するのはコード 9 のみで、Docker または Apple Container を起動してから 再実行してください。
exec は例外です
minato exec は上表のコードではなく、実行したコマンドの終了コードを 返します。
console
$ minato exec web -- npm test; echo $?
1テストの成否を終了コードだけで判定できるようにするための仕様です。実行した コマンドが上表と同じ値を返した場合は区別できないため、確実に判定する必要が あるときは --json の出力を参照してください。
JSON 出力の場合
console
$ minato url nope --json; echo $?
{
"error": {
"code": "not_found",
"message": "no service named `nope`. Available: web, api",
"hint": "…"
}
}
4error.code が機械可読な識別子で、終了コードはその数値表現です。hint が 含まれる場合は、次に取るべき操作が記述されています。
--json 指定時はエラーも stdout に出力されるため、呼び出し側は 1 つの ストリームと 1 つの終了コードのみを確認すれば済みます。