2.2.4. odo push のワークフロー
このセクションでは、odo push
ワークフローについて説明します。odo push は必要なすべての OpenShift Container Platform リソースを使って OpenShift Container Platform クラスターにユーザーコードをデプロイします。
リソースの作成
まだ作成されていない場合には、
odo
push は以下の OpenShift Container Platform リソースを作成します。DeploymentConfig
オブジェクト:-
2 つの init コンテナー
copy-supervisord
およびcopy-files-to-volume
が実行されます。init コンテナーはファイルをemptyDir
とPersistentVolume
タイプのボリュームのそれぞれにコピーします。 -
アプリケーションコンテナーが起動します。アプリケーションコンテナーの最初のプロセスは、PID=1 の
go-init
プロセスです。 go-init
プロセスは SupervisorD デーモンを起動します。注記ユーザーアプリケーションコードはアプリケーションコンテナーにコピーされていないため、
SupervisorD
デーモンはrun
スクリプトを実行しません。
-
2 つの init コンテナー
-
Service
オブジェクト -
Secret
オブジェクト -
PersistentVolumeClaim
オブジェクト
ファイルのインデックス設定
- ファイルインデックサーは、ソースコードディレクトリーのファイルをインデックス化します。インデックサーはソースコードディレクトリー間を再帰的に移動し、作成、削除、または名前が変更されたファイルを検出します。
-
ファイルインデックサーは、
.odo
ディレクトリー内の odo インデックスファイルにインデックス化された情報を維持します。 - odo インデックスファイルが存在しない場合、ファイルインデックサーの初回の実行時であることを意味し、新規の odo インデックス JSON ファイルが作成されます。odo index JSON ファイルにはファイルマップが含まれます。移動したファイルの相対パスと、変更され、削除されたファイルの絶対パスが含まれます。
コードのプッシュ
ローカルコードは、通常は
/tmp/src
の下にあるアプリケーションコンテナーにコピーされます。assemble-and-restart
の実行ソースコードのコピーに成功すると、
assemble-and-restart
スクリプトは実行中のアプリケーションコンテナー内で実行されます。