Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

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 の環境変数を指定する必要はありません。