Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

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に設定されます。