ローカルディレクトリ
CLI を使えば、先に Git へ push しなくても手元のマシンから直接コードをデプロイできます。Zenavo はアップロードされたものをリポジトリとまったく同じようにビルドします。Dockerfile があればそれを、なければ zbpack を使います。
cd my-app
zenavo deploy web --dir .CLI はディレクトリをまとめてサービスのソースとしてアップロードし、ビルドを追跡します。新しいバージョンをデプロイするには同じコマンドをもう一度実行します。
どのサービスに
zenavo deploy <service> --dir .はそのサービスにアップロードします。その名前のサービスがプロジェクトになければ作成します。- サービス名を省略すると、プロジェクトに 1 つだけあるサービスを使います。サービスがなければディレクトリ名のサービスを作り、複数あれば CLI が尋ねます(または
--serviceを指定)。
新しいサービスの HTTP ポートは、--port、ビルドプランが検出したポート(Dockerfile の EXPOSE)、または zbpack のイメージが待ち受ける 8080 のいずれかになります。ドメインはあとから zenavo domain add で設定します。
既存のサービスは、ルートディレクトリ、Dockerfile のパス、ビルド引数、zbpack のオプションを保ちます。Git やイメージのソースはアップロードに置き換わり、自動デプロイはオフになります。リポジトリに戻すにはサービスの Settings で変更します。
アップロードされるもの
次のものは常に除外されます:.git、.hg、.svn、.DS_Store。
ディレクトリに .zenavoignore(.gitignore の構文)があれば、それ以外に何を除くかはそれだけで決まります。なければ CLI は、node_modules、Python の仮想環境、__pycache__、.env ファイル(.env.example は除く)に加えて、ディレクトリの .gitignore と .dockerignore に書かれたものすべてを除外します。依存関係はビルド時に改めてインストールされます。シークレットは変数に設定してください。
アップロードは圧縮後 500 MB、展開後 2 GB までです。シンボリックリンクはディレクトリ内を指している必要があります。外を指すものは CLI が除外して警告します。
アップロードの保存場所
アップロードはコントロールプレーンに保存され、読めるのはあなたのチームのビルドだけです。サービスの古いアップロードは、新しいものが 1 時間経つと削除され、プロジェクトを削除するとすべて消えます。ロールバックには不要です。各デプロイのイメージはレジストリに残っています。