【要約】「Error: Command `vercel deploy` requires confirmation. Use option "--yes" to confirm.」の解決方法【Vercel CLI】 [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者がGitHub Actionsを用いてVercelの継続的デプロイ(CD)環境を構築した際、パイプラインがエラーで停止する問題に直面した。自動化環境ではユーザーの入力を受け付けられないため、以下の事象が発生した。
- ・実行コマンド:
npx vercel --prod --token ${{secrets.VERCEL_TOKEN}} - ・エラー内容:
Error: Command vercel deploy requires confirmation. - ・根本原因: Vercel CLIが実行の最終確認を求めて対話型プロンプトを表示しようとしたこと。
// Approach
開発者は、CLIの対話的な確認プロセスを強制的にスキップさせるアプローチを採用した。これにより、非対話型のCI環境でもコマンドを完結させる。具体的には以下の手順を実施した。
- ・手法: コマンドの引数に
--yesオプションを追加する。 - ・修正後のコマンド:
npx vercel --prod --token ${{secrets.VERCEL_TOKEN}} --yes - ・目的: ユーザーの承認入力を待たずに、デプロイプロセスを自動進行させる。
// Result
コマンドに
--yes オプションを付与したことで、GitHub Actions上でのデプロイが正常に完了した。これにより、手動介入なしの完全自動化を実現している。- ・成果: CI/CDパイプラインの停止問題が解消された。
- ・教訓: CI環境では、対話型プロンプトを発生させるコマンドや、Git管理外のファイル挙動に注意が必要である。
Senior Engineer Insight
> CI/CDパイプライン構築における「非対話モード」の徹底は、運用安定性の基本である。本件のような
--yes フラグの欠如は、自動化の失敗を招く典型的なミスである。大規模なシステムでは、あらゆるCLIツールにおいて、標準入力(stdin)を必要としない設定、あるいは自動承認オプションの有無を事前に検証すべきである。また、環境変数やトークンの管理、Git追跡対象外のファイルがデプロイに与える影響についても、同様の注意深さが求められる。