7.3.4.2. フロントエンドサービスの作成
アプリケーションを OpenShift Container Platform にデプロイするには、oc new-app
コマンドをもう一度使用して、アプリケーションを配置するリポジトリーを指定する必要があります。 このコマンドでは、データベースサービスの作成 で設定したデータベース関連の 環境変数 を指定してください。
$ 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-app
DeploymentConfig の 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 pods
myapp-<number>-<hash>
で始まる行が表示されますが、これは OpenShift Container Platform で実行中のアプリケーションです。
データベースの移行スクリプトを実行してデータベースを初期化してからでないと、アプリケーションは機能しません。これを実行する 2 種類の方法があります。
- 実行中のフロントエンドコンテナーから手動で実行する
最初に rsh コマンドでフロントエンドコンテナーに対して実行します。
$ oc rsh <FRONTEND_POD_ID>
コンテナー内から移行を実行します。
$ RAILS_ENV=production bundle exec rake db:migrate
development
または test
環境で Rails アプリケーションを実行する場合には、RAILS_ENV
の環境変数を指定する必要はありません。
- デプロイメント前の ライフサイクルフック をテンプレートに追するたとえば、Rails サンプル アプリケーションの フックのサンプル を確認します。