2017-12-20 17 views
0

私はmysql DBでホストする必要があるJavaの.warファイルを持っています。 誰でもOpenShiftでホストする正確な手順をお手伝いできますか? アプリからDBへの接続方法は?OpenShiftでのWARデプロイ

+0

どうやってそれを構築していますか? Maven? – simbo1905

+0

オープンシフトのどのバージョンを使用していますか?また、どこに実行中ですか(例:Openshift.com)? – simbo1905

+0

このhttps://stackoverflow.com/a/47821903/329496を参照してください。これは、オープンシフトテンプレートを使用してプロジェクトにmysqlを追加すると、openshiftがmysqlサービスを内部DNSに追加するため、javaアプリケーションがオープンDNSサーバーのmysqlサービスに表示されている内部DNS名とポートを使用して接続します。 – simbo1905

答えて

0

Mavenを使ってアプリケーションをビルドし、OpenShift Onlineでそれを実行していると仮定すると、組み込みのJavaテンプレートを使用できます。 「プロジェクトに追加」を使用して「Java」を選択し、「Open JDK」を選択します。それはあなたのコードに名前とgitのURLを要求します。まず、サンプルコードがどのようにビルドされ、Openshiftで実行されているかを確認するためにgit urlを使って始めてください。

コードの作成方法や実行方法が気に入らない場合は、WARをビルドするJavaデモを作成して、Openshiftにtomcat7-maven-pluginを使用してWARを実行するよう指示します。 POMファイルには、tomcat7を使用してWARを実行し、hereと表示される「オープンシフト」のmavenプロファイルがあります。このプロファイルは、標準Openshift OpenJDKテンプレートでデフォルトで有効になっています。

Javaコードを実行したら、MySQLデータベースをプロジェクト内の別のポッド/サービスとして展開することをお勧めします。そうすれば、データベースとは独立してJavaポッドを拡張できます。もう一度、組み込みのOpenshift Onlineテンプレートを使用することができます。 「プロジェクトに追加」、「データストア」、「MySQL(永続的)」を選択し、デフォルトを使用します。

最後の部分は、Javaアプリケーションをデータベースに接続する方法です。ここでは、OpenShiftで安全に手をつないでいます。我々が見ているように、here OpenShiftは内部DNSとしてあらゆるサービスのIPを公開しています。 mysqlテンプレートを実行すると、サービス "mysql"として作成されます。これはDNSに<service>.<pod_namespace>.svc.cluster.localとして公開されます。 pod_namespaceはオープンシフトプロジェクトです。だから私のケースでは、デモコードOpenShiftプロジェクトは thinbus-srp-spring-demoと呼ばれているので、JavaポッドはDNS名mysql.thinbus-srp-spring-demo.svc.cluster.localを使ってmysqlサービスに接続できます。ですから、JDBC接続文字列のデータベースホスト名として設定することができます。

これらの手順は、マウスの使用方法であり、OpanJDKおよびMySqlテンプレートがインストールされたOpenShiftインスタンスを使用していることを前提としています。あなたは実際にそれらのどれも必要としません。ソリューション全体を含む独自のカスタムテンプレートを作成できます。それはかなり進んだ話題なので、私はこの答えでそれをカバーしません。

関連する問題