ナレッジベース
Zinnector®でのデプロイ:リンク、チェック、プッシュ
ローカルプロジェクトからライブサイトへ:APIキーでサインインし、プロジェクトをホスティングスロットにリンクし、PHP、ディスク、WordPressとスロットを比較するプレフライトを確認してプッシュするだけです。さらに、再デプロイ、デプロイ履歴、問題発生時のビルドログも利用できます。
プロジェクトがローカルで動作するようになったら、4つのコマンドを使ってZinn Digital®ホスティング上のライブサイトへと公開します。サインイン、プロジェクトのホスティングスロットへのリンク、プリフライトの確認、そしてプッシュです。この記事では、それぞれのコマンド、出力内容、そしてその後に利用するコマンド(再デプロイ、デプロイ履歴、ビルドログ)について順に解説します。
APIキーでのサインイン
ダッシュボードの[設定] → [APIキー]からキーを作成し、次を実行します。
zinnector login
キーはプロンプトに入力するため、コマンドライン上で直接受け付けられることは決してありません。したがって、シェル履歴やプロセス一覧に残る心配はありません。CI環境では、echo "$ZINN_API_KEY" | zinnector login --profile ciのようにパイプで渡すか、ZINNECTOR_TOKENを設定してloginを完全にスキップしてください。キーは保存前に検証され、ファイルモード600で保存されます。zinnector whoami --scopesを実行すると、サインインしている組織とキーが持つ権限が表示されます。サンドボックスキーにはその旨のラベルが付与されます。
プロジェクトのスロットへのリンク
zinnector link # リストからサイトを選択
zinnector link example.com --repo acme/site --branch main
linkコマンドは、サイトのIDをzinnector.jsonに書き込みます。また、--no-repoを指定しない限り、プロジェクトのGitリモートをプラットフォーム上のサイトに接続し、プッシュによってデプロイできるようにします。zinnector.jsonをコミットしておけば、リポジトリをクローンした同僚が、指示を受けなくても同じ場所にデプロイできるようになります。このファイルに機密情報は含まれません。
プリフライトの確認
zinnector check
これは、CLIが存在する所以であるコマンドです。デプロイ先となるスロットとプロジェクトを比較し、あらゆる不一致、および比較できなかった項目をすべて出力します。
- PHPのバージョン:メジャーバージョンのギャップはサイトを確実に破損させるため高、マイナーバージョンのギャップはそれより低い重要度として評価されます。すべてをクリティカルとして扱うと、ユーザーが警告を無視するようになるためです。
- スロットが構築に使用したバージョンに切り替え可能か、スロットのPHPがサポート終了(EOL)を迎えていないか、そしてマシンにそのバージョンが適用済みか、あるいは指定されただけか。
- スロットに残っているディスクおよびinodeの空き容量に対する、プロジェクトのサイズとファイル数(WordPressツリーは、ディスク上限に達していなくてもファイル数が枯渇することがあります)。
- 双方のWordPressバージョン、スロットのプロビジョニングが完了しているか、そしてプッシュ先のリポジトリが接続されているか。
このコマンドは警告を発するのみで、処理をブロックすることはありません。チェッカーには分からないサイト固有の事情があるため、すべての検出結果はzinnector push --forceで上書き可能です。比較できなかった項目は成功としては扱われず、常に不明(unknown)として報告され、概要にはその数が常に表示されます。デフォルトでは、ローカルのPHPバージョンはzinnector.jsonで宣言されているものです。--probeを指定すると、ローカルランタイムを起動して実際に測定します。--strictを指定すると、不明な項目がある場合にも終了ステータス0以外で終了するため、CIゲートで有用です。
プッシュ
zinnector push
pushはプリフライトを実行し、コミットをプッシュし、デプロイをトリガーして完了まで監視し、最終ステータスとデプロイされたコミットを出力します。--dry-runはデプロイ以外のすべての処理を行います。--no-waitはデプロイをトリガーして即座に終了します。--no-gitはプッシュを行わず、プラットフォームがすでに保持している内容をデプロイします。デプロイされたコミットが直前にプッシュしたものではない場合、その旨が表示されます。
トラブルシューティング
zinnector deploys example.com # デプロイ履歴(ステータス、コミット、トリガー、メッセージ)
zinnector logs example.com --build # 直近のデプロイのビルドログ
zinnector logs example.com --error # サイトのエラーログ
zinnector deploy example.com # プラットフォームがすでに保持している内容の再デプロイ
zinnector ai "why is my deploy failing?"
zinnector aiは、プラットフォーム上でご自身のアカウントに紐づいて実行されるため、同じデプロイ履歴やログを参照できます。プロジェクト内から実行すると、ディレクトリ名、バージョン、サイトIDといったプロジェクトの構造のみが送信され、ファイルの内容が送信されることは決してありません。
関連情報
- はじめに · ローカル開発 · コマンドリファレンス · トラブルシューティング