11.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このコマンドでは、OpenShift Container Platform は指定された環境変数を使用してソースコードの取得、ビルダーのセットアップ、アプリケーションイメージのビルド、新規に作成されたイメージのデプロイを実行します。このアプリケーションには
rails-appという名前を指定します。rails-appDeploymentConfig の JSON ドキュメントを参照して、環境変数が追加されたかどうかを確認できます。$ oc get dc rails-app -o json以下のセクションが表示されるはずです。
env": [ { "name": "POSTGRESQL_USER", "value": "username" }, { "name": "POSTGRESQL_PASSWORD", "value": "password" }, { "name": "POSTGRESQL_DATABASE", "value": "db_name" }, { "name": "DATABASE_SERVICE_NAME", "value": "postgresql" } ],ビルドプロセスを確認します。
$ oc logs -f build/rails-app-1ビルドが完了すると、OpenShift Container Platform で Pod が実行されていることを確認します。
$ oc get podsmyapp-<number>-<hash>で始まる行が表示されますが、これは OpenShift Container Platform で実行中のアプリケーションです。データベースの移行スクリプトを実行してデータベースを初期化してからでないと、アプリケーションは機能しません。これを実行する 2 種類の方法があります。
実行中のフロントエンドコンテナーから手動で実行する
rshコマンドでフロントエンドコンテナーに exec を実行します。$ oc rsh <FRONTEND_POD_ID>コンテナー内から移行を実行します。
$ RAILS_ENV=production bundle exec rake db:migratedevelopmentまたはtest環境で Rails アプリケーションを実行する場合には、RAILS_ENVの環境変数を指定する必要はありません。
- デプロイメント前のライフサイクルフックをテンプレートに追する