🍜
JavaのサンプルアプリをOpenShift上のJBossコンテナで動かす
jarファイルを用意する
- 今回はJavaで、helloと返すだけのアプリケーションを作成しました。これをbuildしてwarにしておきます。
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@Path("/hello")
public class HelloController {
public HelloController() {
}
@GET
public String hello() {
return "hello";
}
}
jbossコンテナの作成
適当なjbossイメージを指定して、new-app
でアプリケーションを作成します。
new-app
は、deployment
, service
, pod
を一気に作成してくれます。
oc new-app --image-stream="openshift/jboss-eap-xp3-openjdk11-openshift:latest" --name=jboss
podの立ち上がりを確認します。
oc get pod
> NAME READY STATUS RESTARTS AGE
jboss-7847c9647-wcckn 1/1 Running 0 1m
コンテナにアクセスできるようにする
oc expose service/jboss
oc expose
で、ブラウザからserviceにアクセスできるようにします。
Route は、OpenShift クラスター内のサービスを外部からアクセスできるようにするためのリソースです。
こうすることで、以下のURLでアクセスできるようにします。
http://<service-name>.<namespace-name>.apps.<cluster-name>
- oc get routeでRouteの作成を確認できました。
oc get route
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
jboss jboss-my-java-app.apps-crc.testing jboss 8080-tcp None
- このURLにブラウザでアクセスすると、404 NotFoundとなり、jboss自体は動いていることが分かります。
作成したwarをコンテナに配置する。
- 今回はcpでwarをコンテナに配置することにします。
oc cp .\sample.war jboss-7847c9647-wcckn:/opt/eap/standalone/deployments/
サンプルアプリがOpenShift上で動いていることの確認
- ブラウザでアクセスしてみると、サンプルアプリがjbossコンテナで動いていることを確認できました。
http://jboss-my-java-app.apps-crc.testing/
Discussion