🍜

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上で動いていることの確認

Discussion