2.8.6. ホットデプロイ
ホットデプロイでは、新しい S2I ビルドを生成する必要なしに、アプリケーションに変更をすばやく加え、デプロイすることができます。このイメージでホットデプロイメントを有効にする方法は、アプリケーションの種類によって異なります。
Ruby on Rails アプリケーション
Ruby on Rails アプリケーションの場合は、実行中の Pod に渡された RAILS_ENV=development
環境変数を使用して、ビルドされた Rails アプリケーションを実行します。既存のデプロイメント設定の場合は、 oc set env
コマンドを使用できます。
$ oc set env dc/rails-app RAILS_ENV=development
他のタイプの Ruby アプリケーション (Sinatra、Padrino など)
他のタイプの Ruby アプリケーションでは、アプリケーションは、実行中のコンテナー内でソースコードが変更されるたびに、サーバーを再読み込みできる gem でビルドする必要があります。これらの gem には以下が含まれます。
開発モードでアプリケーションを実行できるようにするには、選択した gem で Web サーバーを起動し、ソースコードへの変更の有無を確認するように S2I run スクリプト を変更する必要があります。
お使いのバージョンの S2I run スクリプト でアプリケーションイメージをビルドした後に、RACK_ENV=development
環境変数でイメージを実行します。たとえば、oc new-app
コマンドを参照してください。oc set env
コマンドを使用して、既存オブジェクトの環境変数を更新できます。
このオプションは、開発またはデバッグの時にのみ使用してください。実稼働環境でこの設定をオンにすることは推奨していません。
実行中の Pod でソースコードを変更するには、oc rsh
コマンドを使用してコンテナーに入ります。
$ oc rsh <pod_id>
実行中のコンテナーに入ると、現在のディレクトリーはソースコードが配置されている/opt/app-root/srcに設定されます。