This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.9.4. アプリケーションの OpenShift Container Platform へのデプロイ
OpenShift Container Platform にアプリケーションをデプロイすることができます。
				rails-app プロジェクトの作成後、新規プロジェクトの namespace に自動的に切り替えられます。
			
OpenShift Container Platform へのアプリケーションのデプロイでは 3 つの手順を実行します。
- OpenShift Container Platform の PostgreSQL イメージからデータベースサービスを作成します。
- データベースサービスと連動する OpenShift Container Platform の Ruby 2.0 ビルダーイメージおよび Ruby on Rails ソースコードのフロントエンドサービスを作成します。
- アプリケーションのルートを作成します。
手順
- Ruby on Rails アプリケーションをデプロイするには、アプリケーション用に新規のプロジェクトを作成します。 - oc new-project rails-app --description="My Rails application" --display-name="Rails Application" - $ oc new-project rails-app --description="My Rails application" --display-name="Rails Application"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
9.4.1. データベースサービスの作成
Rails アプリケーションには実行中のデータベースサービスが必要です。このサービスには、PostgeSQL データベースイメージを使用します。
					データベースサービスを作成するために、oc new-app コマンドを使用します。このコマンドには、必要な環境変数を渡す必要があります。この環境変数は、データベースコンテナー内で使用します。これらの環境変数は、ユーザー名、パスワード、およびデータベースの名前を設定するために必要です。これらの環境変数の値を任意の値に変更できます。変数は以下のようになります。
				
- POSTGRESQL_DATABASE
- POSTGRESQL_USER
- POSTGRESQL_PASSWORD
これらの変数を設定すると、以下を確認できます。
- 指定の名前のデータベースが存在する
- 指定の名前のユーザーが存在する
- ユーザーは指定のパスワードで指定のデータベースにアクセスできる
手順
- データベースサービスを作成します。 - oc new-app postgresql -e POSTGRESQL_DATABASE=db_name -e POSTGRESQL_USER=username -e POSTGRESQL_PASSWORD=password - $ oc new-app postgresql -e POSTGRESQL_DATABASE=db_name -e POSTGRESQL_USER=username -e POSTGRESQL_PASSWORD=password- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - データベース管理者のパスワードを設定するには、直前のコマンドに以下を追加します。 - -e POSTGRESQL_ADMIN_PASSWORD=admin_pw - -e POSTGRESQL_ADMIN_PASSWORD=admin_pw- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 進行状況を確認します。 - oc get pods --watch - $ oc get pods --watch- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
9.4.2. フロントエンドサービスの作成
アプリケーションを OpenShift Container Platform にデプロイするには、アプリケーションが置かれるリポジトリーを指定する必要があります。
手順
- フロントエンドサービスを作成し、データベースサービスの作成時に設定されたデータベース関連の環境変数を指定します。 - oc new-app path/to/source/code --name=rails-app -e POSTGRESQL_USER=username -e POSTGRESQL_PASSWORD=password -e POSTGRESQL_DATABASE=db_name -e DATABASE_SERVICE_NAME=postgresql - $ oc new-app path/to/source/code --name=rails-app -e POSTGRESQL_USER=username -e POSTGRESQL_PASSWORD=password -e POSTGRESQL_DATABASE=db_name -e DATABASE_SERVICE_NAME=postgresql- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - このコマンドでは、OpenShift Container Platform は指定された環境変数を使用してソースコードの取得、ビルダーのセットアップ、アプリケーションイメージのビルド、新規に作成されたイメージのデプロイを実行します。このアプリケーションには - rails-appという名前を指定します。
- rails-appDeploymentConfig の JSON ドキュメントを参照して、環境変数が追加されたかどうかを確認できます。- oc get dc rails-app -o json - $ oc get dc rails-app -o json- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下のセクションが表示されるはずです。 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- ビルドプロセスを確認します。 - oc logs -f build/rails-app-1 - $ oc logs -f build/rails-app-1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- ビルドが完了すると、OpenShift Container Platform で Pod が実行されていることを確認します。 - oc get pods - $ oc get pods- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - myapp-<number>-<hash>で始まる行が表示されますが、これは OpenShift Container Platform で実行中のアプリケーションです。
- データベースの移行スクリプトを実行してデータベースを初期化してからでないと、アプリケーションは機能しません。これを実行する 2 種類の方法があります。 - 実行中のフロントエンドコンテナーから手動で実行する - rshコマンドでフロントエンドコンテナーに exec を実行します。- oc rsh <FRONTEND_POD_ID> - $ oc rsh <FRONTEND_POD_ID>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- コンテナー内から移行を実行します。 - RAILS_ENV=production bundle exec rake db:migrate - $ RAILS_ENV=production bundle exec rake db:migrate- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - developmentまたは- test環境で Rails アプリケーションを実行する場合には、- RAILS_ENVの環境変数を指定する必要はありません。
 
- デプロイメント前のライフサイクルフックをテンプレートに追する
 
9.4.3. アプリケーションのルートの作成
アプリケーションのルートを作成するためにサービスを公開できます。
手順
- www.example.comなどの外部からアクセスできるホスト名を指定してサービスを公開するには、OpenShift Container Platform のルートを使用します。この場合は、以下を入力してフロントエンドサービスを公開する必要があります。- oc expose service rails-app --hostname=www.example.com - $ oc expose service rails-app --hostname=www.example.com- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
指定するホスト名がルーターの IP アドレスに解決することを確認します。