Red Hat Training

A Red Hat training course is available for OpenShift Online

6.3. Web フレームワークアプリケーションの移行

6.3.1. 概要

以下のトピックでは、Python、Ruby、PHP、Perl、Node.js、WordPress、Ghost、JBoss EAP、JBoss WS (Tomcat) および Wildfly 10 (JBoss AS) の Web フレームワークアプリケーションを OpenShift version 2 (v2) から OpenShift version 3 (v3) に移行する方法を確認します。

6.3.2. Python

  1. 新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル v2 Git リポジトリーに追加します。

    $ git remote add <remote-name> https://github.com/<github-id>/<repo-name>.git
  2. ローカルの v2 ソースコードを新規リポジトリーにプッシュします。

    $ git push -u <remote-name> master
  3. setup.pywsgi.pyrequirements.txt および etc などの重要なファイルがすべて新規リポジトリーにプッシュされていることを確認します。

    • アプリケーションに必要なパッケージがすべて requirements.txt に含まれていることを確認します。
  4. oc コマンドを使用して、ビルダーイメージとソースコードから新規の Python アプリケーションを起動します。

    $ oc new-app --strategy=source
    python:3.3~https://github.com/<github-id>/<repo-name> --name=<app-name> -e
    <ENV_VAR_NAME>=<env_var_value>

サポート対象の Python バージョン

サポート対象のコンテナーイメージについて参照してください。

6.3.3. Ruby

  1. 新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル v2 Git リポジトリーに追加します。

    $ git remote add <remote-name> https://github.com/<github-id>/<repo-name>.git
  2. ローカルの v2 ソースコードを新規リポジトリーにプッシュします。

    $ git push -u <remote-name> master
  3. Gemfile がなく、単純な rack アプリケーションを実行している場合には、この Gemfile ファイルをソースの root にコピーします。

    https://github.com/sclorg/ruby-ex/blob/master/Gemfile
    注記

    Ruby 2.0 がサポートする rack gem の最新バージョンは 1.6.4 であるため、Gemfile は gem 'rack', “1.6.4” に変更する必要があります。

    Ruby 2.2 以降の場合は、rack gem 2.0 以降を使用してください。

  4. oc コマンドを使用して、ビルダーイメージとソースコードから新規の Ruby アプリケーションを起動します。

    $ oc new-app --strategy=source
    ruby:2.0~https://github.com/<github-id>/<repo-name>.git

サポート対象の Ruby バージョン

サポート対象のコンテナーイメージについて参照してください。

6.3.4. PHP

  1. 新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル v2 Git リポジトリーに追加します。

    $ git remote add <remote-name> https://github.com/<github-id>/<repo-name>
  2. ローカルの v2 ソースコードを新規リポジトリーにプッシュします。

    $ git push -u <remote-name> master
  3. oc コマンドを使用して、ビルダーイメージとソースコードから新規の PHP アプリケーションを起動します。

    $ oc new-app https://github.com/<github-id>/<repo-name>.git
    --name=<app-name> -e <ENV_VAR_NAME>=<env_var_value>

サポート対象の PHP バージョン

サポート対象のコンテナーイメージについて参照してください。

6.3.5. Perl

  1. 新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル v2 Git リポジトリーに追加します。

    $ git remote add <remote-name> https://github.com/<github-id>/<repo-name>
  2. ローカルの v2 ソースコードを新規リポジトリーにプッシュします。

    $ git push -u <remote-name> master
  3. ローカルの Git リポジトリーを編集して、変更をアップストリームにプッシュして、v3 との互換性を確保します。

    1. v2 では、CPAN モジュールは .openshift/cpan.txt にあります。v3 では、s2i ビルダーは、ソースのルートディレクトリーで cpanfile という名前のファイルを検索します。

      $ cd <local-git-repository>
      $ mv .openshift/cpan.txt cpanfile

      cpanfile の形式が若干異なるので、これを編集します。

      cpanfile の形式cpan.txt の形式

      requires ‘cpan::mod’;

      cpan::mod

      requires ‘Dancer’;

      Dancer

      requires ‘YAML’;

      YAML

    2. .openshift ディレクトリーを削除します。

      注記

      v3 では、action_hooks および cron タスクは同じようにサポートされません。詳細情報は、「アクションフック」を参照してください。

  4. oc コマンドを使用して、ビルダーイメージとソースコードから新規の Perl アプリケーションを起動します。
$ oc new-app https://github.com/<github-id>/<repo-name>.git

サポート対象の Perl バージョン

サポート対象のコンテナーイメージについて参照してください。

6.3.6. Node.js

  1. 新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル Git リポジトリーに追加します。

    $ git remote add <remote-name> https://github.com/<github-id>/<repo-name>
  2. ローカルの v2 ソースコードを新規リポジトリーにプッシュします。

    $ git push -u <remote-name> master
  3. ローカルの Git リポジトリーを編集して、変更をアップストリームにプッシュして、v3 との互換性を確保します。

    1. .openshift ディレクトリーを削除します。

      注記

      v3 では、action_hooks および cron タスクは同じようにサポートされません。詳細情報は、「アクションフック」を参照してください。

    2. server.js を編集します。

      • L116 server.js: 'self.app = express();'
      • L25 server.js: self.ipaddress = '0.0.0.0';
      • L26 server.js: self.port = 8080;

        注記

        Lines(L) は V2 カートリッジの server.js から取得されます。

  4. oc コマンドを使用して、ビルダーイメージとソースコードから新規の Node.js アプリケーションを起動します。

    $ oc new-app https://github.com/<github-id>/<repo-name>.git
    --name=<app-name> -e <ENV_VAR_NAME>=<env_var_value>

サポート対象の Node.js バージョン

サポート対象のコンテナーイメージについて参照してください。

重要

OpenShift Online v3 では、バージョン 0.10 は非推奨となり、使用できなくなりました。

6.3.7. WordPress

重要

現時点で WordPress アプリケーションの移行はコミュニティーによるサポートのみで、Red hat のサポートはありません。

WordPress アプリケーションの OpenShift Online v3 への移行に関する情報は、「OpenShift ブログ」を参照してください。

6.3.8. Ghost

重要

現時点で Ghost アプリケーションの移行はコミュニティーによるサポートのみで、Red hat のサポートはありません。

Ghost アプリケーションの OpenShift Online v3 への移行に関する情報は、「OpenShift ブログ」を参照してください。

6.3.9. JBoss EAP

重要

現時点で、JBoss EAP は OpenShift Online Starter では使用できません。これは OpenShift Online Pro でのみ利用できます。

  1. 新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル Git リポジトリーに追加します。

    $ git remote add <remote-name> https://github.com/<github-id>/<repo-name>
  2. ローカルの v2 ソースコードを新規リポジトリーにプッシュします。

    $ git push -u <remote-name> master
  3. リポジトリーに事前にビルドされた .war ファイルが含まれている場合には、それらをリポジトリーの root ディレクトリー内の deployments ディレクトリーに置く必要があります。
  4. JBoss EAP 7 ビルダーイメージ (jboss-eap70-openshift) と GitHub からのソースコードリポジトリーを使用して新規アプリケーションを作成します。

    $ oc new-app --strategy=source jboss-eap70-openshift:1.6~https://github.com/<github-id>/<repo-name>.git

6.3.10. JBoss WS (Tomcat)

  1. 新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル Git リポジトリーに追加します。

    $ git remote add <remote-name> https://github.com/<github-id>/<repo-name>
  2. ローカルの v2 ソースコードを新規リポジトリーにプッシュします。

    $ git push -u <remote-name> master
  3. リポジトリーに事前にビルドされた .war ファイルが含まれている場合には、それらをリポジトリーの root ディレクトリー内の deployments ディレクトリーに置く必要があります。
  4. JBoss Web Server 3 (Tomcat 7) ビルダーイメージ (jboss-webserver30-tomcat7) と GitHub からのソースコードリポジトリーを使用して新規アプリケーションを作成します。

    $ oc new-app --strategy=source
    jboss-webserver30-tomcat7-openshift~https://github.com/<github-id>/<repo-name>.git
    --name=<app-name> -e <ENV_VAR_NAME>=<env_var_value>

6.3.11. JBoss AS (Wildfly 10)

  1. 新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル Git リポジトリーに追加します。

    $ git remote add <remote-name> https://github.com/<github-id>/<repo-name>
  2. ローカルの v2 ソースコードを新規リポジトリーにプッシュします。

    $ git push -u <remote-name> master
  3. ローカルの Git リポジトリーを編集して、変更をアップストリームにプッシュして v3 との互換性を確保します。

    1. .openshift ディレクトリーを削除します。

      注記

      v3 では、action_hooks および cron タスクは同じようにサポートされません。詳細情報は、「アクションフック」を参照してください。

    2. deployments ディレクトリーをソースリポジトリーの root に追加します。.war ファイルをこの「deployments」ディレクトリーに移動します。
  4. oc コマンドを使用して、ビルダーイメージとソースコードから新規の Wildfly アプリケーションを起動します。

    $ oc new-app https://github.com/<github-id>/<repo-name>.git
     --image-stream=”openshift/wildfly:10.0" --name=<app-name> -e
     <ENV_VAR_NAME>=<env_var_value>
    注記

    引数 --name はアプリケーション名を指定するためのオプションの引数です。また、-eOPENSHIFT_PYTHON_DIR などのビルドやデプロイメントプロセスに必要な環境変数を追加するためのオプションの引数です。

6.3.12. サポート対象の JBoss バージョン

サポート対象のコンテナーイメージについて参照してください。