2.6.3. バックエンドコンポーネントのデプロイ
Java コンポーネントを作成するには、Java ビルダーイメージをインポートし、Java アプリケーションをダウンロードし、odo
でソースコードをクラスターにプッシュします。
手順
openjdk18
をクラスターにインポートします。$ oc import-image openjdk18 \ --from=registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift --confirm
イメージに
builder
のタグを付け、イメージが odo でアクセスできるようにします。$ oc annotate istag/openjdk18:latest tags=builder
odo catalog list components
を実行し、作成されたイメージを表示します。$ odo catalog list components
出力例
Odo Devfile Components: NAME DESCRIPTION REGISTRY java-maven Upstream Maven and OpenJDK 11 DefaultDevfileRegistry java-openliberty Open Liberty microservice in Java DefaultDevfileRegistry java-quarkus Upstream Quarkus with Java+GraalVM DefaultDevfileRegistry java-springboot Spring Boot® using Java DefaultDevfileRegistry nodejs Stack with NodeJS 12 DefaultDevfileRegistry Odo OpenShift Components: NAME PROJECT TAGS SUPPORTED java openshift 11,8,latest YES dotnet openshift 2.1,3.1,latest NO golang openshift 1.13.4-ubi7,1.13.4-ubi8,latest NO httpd openshift 2.4-el7,2.4-el8,latest NO nginx openshift 1.14-el7,1.14-el8,1.16-el7,1.16-el8,latest NO nodejs openshift 10-ubi7,10-ubi8,12-ubi7,12-ubi8,latest NO perl openshift 5.26-el7,5.26-ubi8,5.30-el7,latest NO php openshift 7.2-ubi7,7.2-ubi8,7.3-ubi7,7.3-ubi8,latest NO python openshift 2.7-ubi7,2.7-ubi8,3.6-ubi7,3.6-ubi8,3.8-ubi7,3.8-ubi8,latest NO ruby openshift 2.5-ubi7,2.5-ubi8,2.6-ubi7,2.6-ubi8,2.7-ubi7,latest NO wildfly openshift 10.0,10.1,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,8.1,9.0,latest NO
コンポーネントの新規ディレクトリーを作成します。
$ mkdir my_components && cd my_components
バックエンドアプリケーションのサンプルをダウンロードします。
$ git clone https://github.com/openshift-evangelists/Wild-West-Backend backend
バックエンドソースディレクトリーに移動します。
$ cd backend
ディレクトリーに正しいファイルがあることを確認します。
$ ls
出力例
debug.sh pom.xml src
バックエンドのソースファイルを Maven でビルドし、JAR ファイルを作成します。
$ mvn package
出力例
... [INFO] -------------------------------------- [INFO] BUILD SUCCESS [INFO] -------------------------------------- [INFO] Total time: 2.635 s [INFO] Finished at: 2019-09-30T16:11:11-04:00 [INFO] Final Memory: 30M/91M [INFO] --------------------------------------
backend
という Java コンポーネントタイプのコンポーネント設定を作成します。$ odo create openjdk18 backend --binary target/wildwest-1.0.jar
出力例
✓ Validating component [1ms] Please use `odo push` command to create the component with source deployed
設定ファイルの
config.yaml
は、デプロイ用のコンポーネントについての情報が含まれるバックエンドコンポーネントのローカルディレクトリーに置かれます。以下を使用して
config.yaml
ファイルでバックエンドコンポーネントの設定内容を確認します。$ odo config view
出力例
COMPONENT SETTINGS ------------------------------------------------ PARAMETER CURRENT_VALUE Type openjdk18 Application app Project myproject SourceType binary Ref SourceLocation target/wildwest-1.0.jar Ports 8080/TCP,8443/TCP,8778/TCP Name backend MinMemory MaxMemory DebugPort Ignore MinCPU MaxCPU
コンポーネントを OpenShift Container Platform クラスターにプッシュします。
$ odo push
出力例
Validation ✓ Checking component [6ms] Configuration changes ✓ Initializing component ✓ Creating component [124ms] Pushing to component backend of type binary ✓ Checking files for pushing [1ms] ✓ Waiting for component to start [48s] ✓ Syncing files to the component [811ms] ✓ Building component [3s]
odo push
を使用すると、OpenShift Container Platform はバックエンドコンポーネントをホストするためのコンテナーを作成し、そのコンテナーを OpenShift Container Platform クラスターで実行されている Pod にデプロイし、backend
コンポーネントを起動します。以下を検証します。
odo でのアクションのステータス
$ odo log -f
出力例
2019-09-30 20:14:19.738 INFO 444 --- [ main] c.o.wildwest.WildWestApplication : Starting WildWestApplication v1.0 onbackend-app-1-9tnhc with PID 444 (/deployments/wildwest-1.0.jar started by jboss in /deployments)
バックエンドコンポーネントのステータス
$ odo list
出力例
APP NAME TYPE SOURCE STATE app backend openjdk18 file://target/wildwest-1.0.jar Pushed