2.2.4. odo push のワークフロー

このセクションでは、odo push ワークフローについて説明します。odo push は必要なすべての OpenShift Container Platform リソースを使って OpenShift Container Platform クラスターにユーザーコードをデプロイします。

  1. リソースの作成

    まだ作成されていない場合には、odo push は以下の OpenShift Container Platform リソースを作成します。

    • DeploymentConfig オブジェクト:

      • 2 つの init コンテナー copy-supervisord および copy-files-to-volume が実行されます。init コンテナーはファイルを emptyDirPersistentVolume タイプのボリュームのそれぞれにコピーします。
      • アプリケーションコンテナーが起動します。アプリケーションコンテナーの最初のプロセスは、PID=1 の go-init プロセスです。
      • go-init プロセスは SupervisorD デーモンを起動します。

        注記

        ユーザーアプリケーションコードはアプリケーションコンテナーにコピーされていないため、SupervisorD デーモンは run スクリプトを実行しません。

    • Service オブジェクト
    • Secret オブジェクト
    • PersistentVolumeClaim オブジェクト
  2. ファイルのインデックス設定

    • ファイルインデックサーは、ソースコードディレクトリーのファイルをインデックス化します。インデックサーはソースコードディレクトリー間を再帰的に移動し、作成、削除、または名前が変更されたファイルを検出します。
    • ファイルインデックサーは、.odo ディレクトリー内の odo インデックスファイルにインデックス化された情報を維持します。
    • odo インデックスファイルが存在しない場合、ファイルインデックサーの初回の実行時であることを意味し、新規の odo インデックス JSON ファイルが作成されます。odo index JSON ファイルにはファイルマップが含まれます。移動したファイルの相対パスと、変更され、削除されたファイルの絶対パスが含まれます。
  3. コードのプッシュ

    ローカルコードは、通常は /tmp/src の下にあるアプリケーションコンテナーにコピーされます。

  4. assemble-and-restart の実行

    ソースコードのコピーに成功すると、assemble-and-restart スクリプトは実行中のアプリケーションコンテナー内で実行されます。