OpenShift v3 のJBoss Web Server (tomcat7)+MySQL テンプレートの使い方
Tomcat/MySQLのテンプレートを使う場合、少しだけ設定が必要だったのでメモ
やりたいこと
JBoss Web Server (tomcat7)/MySQLのテンプレートを使って簡単なアプリケーションのデプロイ。デプロイするアプリケーションはtomcatのサンプルアプリケーションを利用します。
利用するテンプレート
パラメータ
パラメータ名 | 値 | 備考 |
---|---|---|
APPLICATION_HOSTNAME | sample-extdbtest.apps.cloud | 公開するときのFQDNを指定 |
GIT_URI | https://github.com/apache/tomcat.git | Tomcatのサンプルアプリ |
アプリケーションの確認
http://sample-extdbtest.apps.cloud/examples/index.html にアクセスして、以下のページが表示されるはず。だった。。。
<title>Apache Tomcat Examples</title> </head> <body> <p> <h3>Apache Tomcat Examples</H3> <p></p> <ul> <li><a href="servlets">Servlets examples</a></li> <li><a href="jsp">JSP Examples</a></li> <li><a href="websocket/index.xhtml">WebSocket (JSR356) Examples</a></li> <li><a href="websocket-deprecated">WebSocket Examples using the deprecated Apache Tomcat proprietary API</a></li> </ul> </body></html>
発生した問題
build
サンプルアプリケーションのタグがmaster
ではなくtrunk
だった。
これは、アプリケーション作成時に設定するパラメータGIT_REF
をtrunk
に設定すれば良い。すでに作成済みのbuildConfigを直接編集してもOK。
source: git: ref: trunk uri: https://github.com/apache/tomcat.git type: Git
編集後、build を実行。
oc start-build jws-app
deploy
ServiceAccount、Secretがない
deploy に失敗するので、oc get events
でイベントログを確認したところ、Podの作成にjws-service-accountがないというエラー。
これを解決して、気を取り直して再デプロイするも、今度はVolumeをマウントするのにjws-app-secret
がないというエラー。
jws-service-accountとjws-app-secretをhttps://github.com/jboss-openshift/application-templates/blob/master/secrets/jws-app-secret.jsonに使って作成。
oc create -f jws-app-secret.json
設定後、deploy を再実行。
oc deploy jws-app --latest
これで無事にアプリケーションがデプロイできました。