先日タイトルの内容でハンズオンやってと言われたので忘れないうちに手順を書いておきます。
やりたいことは持っているJavaアプリ(warファイルになっている)からOpenLibertyと一緒にDockerイメージを作ってそのイメージをIBM Cloud上でデプロイします。
なお今回のは無料で作れるライトアカウントでもできるので初心者のかたも是非やってみてください。
手順は
1. IBM CloudにKubernetesクラスターを作成
2. ローカルのDockerDockerイメージを作成、Docker Hubにアップロード
3. IBM CloudのKubernetesサービス上にデプロイ
アプリ(サーブレット)は極めてシンプルなものですがきっと複雑なアプリもできるはず
IBM CloudにKubernetesクラスターを作成
これはこちらを参考に作りました。
https://cloud.ibm.com/docs/containers?topic=containers-cs_cluster_tutorial&locale=ja
ライトアカウントで作れる無料のクラスターでやりました。ローカルのDockerDockerイメージを作成、Docker Hubにアップロード
PCかMACで以下のコマンドを実行Open Liberty のDocker イメージをダウンロード
$ docker image pull open-liberty
次に以下の内容でDockerfileを作成
FROM open-liberty
COPY ./book-deploy.war /config/dropins/book-deploy.war
同じフォルダーにwarファイルを配置して以下のコマンドでopenliberty-handsonのDockerイメージを作成。
$ docker build . openliberty-handson
できたらDocker Hubにアップローヂ
$ docker tag openliberty-handson /openliberty-handson
$ docker push ユーザー名/openliberty-handson
アップロードされたのを確認
- IBM CloudのKubernetesサービス上にデプロイ IBM cloudにログインしたのちに以下のコマンドでDeploymentの作成、サービスの作成を行ってください。 $ Kubectl run liberty --image=<DockerHubのユーザー名>/openliberty-handson $ kubectl expose deployment liberty --type="NodePort" --port=9080
これでできました。次にIPアドレス、ポート番号を調べてブラウザーからアクセスします。
IPアドレスは
$ ibmcloud cs workers <クラスター名>
で出てきたパブリックアドレスです。
ポート番号は
$ kubectl get service liberty
ででてくるPort(s)の2番目の番号で30000番台の数字です。
ブラウザーでアクセスしてみましょう!