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
新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル v2 Git リポジトリーに追加します。
$ git remote add <remote-name> https://github.com/<github-id>/<repo-name>.git
ローカルの v2 ソースコードを新規リポジトリーにプッシュします。
$ git push -u <remote-name> master
setup.py、wsgi.py、requirements.txt および etc などの重要なファイルがすべて新規リポジトリーにプッシュされていることを確認します。
- アプリケーションに必要なパッケージがすべて requirements.txt に含まれていることを確認します。
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
新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル v2 Git リポジトリーに追加します。
$ git remote add <remote-name> https://github.com/<github-id>/<repo-name>.git
ローカルの v2 ソースコードを新規リポジトリーにプッシュします。
$ git push -u <remote-name> master
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 以降を使用してください。
oc
コマンドを使用して、ビルダーイメージとソースコードから新規の Ruby アプリケーションを起動します。$ oc new-app --strategy=source ruby:2.0~https://github.com/<github-id>/<repo-name>.git
サポート対象の Ruby バージョン
サポート対象のコンテナーイメージについて参照してください。
6.3.4. PHP
新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル v2 Git リポジトリーに追加します。
$ git remote add <remote-name> https://github.com/<github-id>/<repo-name>
ローカルの v2 ソースコードを新規リポジトリーにプッシュします。
$ git push -u <remote-name> master
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
新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル v2 Git リポジトリーに追加します。
$ git remote add <remote-name> https://github.com/<github-id>/<repo-name>
ローカルの v2 ソースコードを新規リポジトリーにプッシュします。
$ git push -u <remote-name> master
ローカルの Git リポジトリーを編集して、変更をアップストリームにプッシュして、v3 との互換性を確保します。
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
.openshift ディレクトリーを削除します。
注記v3 では、action_hooks および cron タスクは同じようにサポートされません。詳細情報は、「アクションフック」を参照してください。
-
oc
コマンドを使用して、ビルダーイメージとソースコードから新規の Perl アプリケーションを起動します。
$ oc new-app https://github.com/<github-id>/<repo-name>.git
サポート対象の Perl バージョン
サポート対象のコンテナーイメージについて参照してください。
6.3.6. Node.js
新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル Git リポジトリーに追加します。
$ git remote add <remote-name> https://github.com/<github-id>/<repo-name>
ローカルの v2 ソースコードを新規リポジトリーにプッシュします。
$ git push -u <remote-name> master
ローカルの Git リポジトリーを編集して、変更をアップストリームにプッシュして、v3 との互換性を確保します。
.openshift ディレクトリーを削除します。
注記v3 では、action_hooks および cron タスクは同じようにサポートされません。詳細情報は、「アクションフック」を参照してください。
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 から取得されます。
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 でのみ利用できます。
新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル Git リポジトリーに追加します。
$ git remote add <remote-name> https://github.com/<github-id>/<repo-name>
ローカルの v2 ソースコードを新規リポジトリーにプッシュします。
$ git push -u <remote-name> master
- リポジトリーに事前にビルドされた .war ファイルが含まれている場合には、それらをリポジトリーの root ディレクトリー内の deployments ディレクトリーに置く必要があります。
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)
新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル Git リポジトリーに追加します。
$ git remote add <remote-name> https://github.com/<github-id>/<repo-name>
ローカルの v2 ソースコードを新規リポジトリーにプッシュします。
$ git push -u <remote-name> master
- リポジトリーに事前にビルドされた .war ファイルが含まれている場合には、それらをリポジトリーの root ディレクトリー内の deployments ディレクトリーに置く必要があります。
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)
新しい GitHub リポジトリーを設定して、そのリポジトリーをリモートのブランチとして現在のローカル Git リポジトリーに追加します。
$ git remote add <remote-name> https://github.com/<github-id>/<repo-name>
ローカルの v2 ソースコードを新規リポジトリーにプッシュします。
$ git push -u <remote-name> master
ローカルの Git リポジトリーを編集して、変更をアップストリームにプッシュして v3 との互換性を確保します。
.openshift ディレクトリーを削除します。
注記v3 では、action_hooks および cron タスクは同じようにサポートされません。詳細情報は、「アクションフック」を参照してください。
- deployments ディレクトリーをソースリポジトリーの root に追加します。.war ファイルをこの「deployments」ディレクトリーに移動します。
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
はアプリケーション名を指定するためのオプションの引数です。また、-e
はOPENSHIFT_PYTHON_DIR
などのビルドやデプロイメントプロセスに必要な環境変数を追加するためのオプションの引数です。
6.3.12. サポート対象の JBoss バージョン
サポート対象のコンテナーイメージについて参照してください。