かんがるーさんの日記

最近自分が興味をもったものを調べた時の手順等を書いています。今は Spring Boot をいじっています。

Spring Boot 2.4.x の Web アプリを 2.5.x へバージョンアップする ( その11 )( Docker で複数の Tomcat を起動して動作確認する )

概要

記事一覧はこちらです。

Spring Boot 2.4.x の Web アプリを 2.5.x へバージョンアップする ( その10 )( Docker コンテナの image をバージョンアップする ) の続きです。

  • 今回の手順で確認できるのは以下の内容です。
    • Build OCI images with Cloud Native Buildpacks の機能で作成した Docker image で Web アプリを実行して動作確認します。

参照したサイト・書籍

目次

  1. clean タスク実行 → Rebuild Project 実行 → build タスクを実行する
  2. bootBuildImage タスクを実行する
  3. docker-compose.app.yml を変更する
  4. Docker で複数の Tomcat を起動して動作確認する
  5. Docker Compose V2 では --compatibility オプションが無くなったのか。。。と思ったが、docker-compose -f docker-compose.app.yml up -d で app コンテナが3つ起動する

手順

clean タスク実行 → Rebuild Project 実行 → build タスクを実行する

clean タスク実行 → Rebuild Project 実行 → build タスクを実行して BUILD SUCCESSFUL のメッセージが出力されることを確認します。

f:id:ksby:20210911183803p:plain

bootBuildImage タスクを実行する

bootBuildImage タスクを実行して Successfully built image 'docker.io/library/ksbysample-webapp-lending:2.5.4'BUILD SUCCESSFUL のメッセージが出力されることを確認します。

f:id:ksby:20210911184350p:plain

docker-compose.app.yml を変更する

docker-compose.app.yml を以下のように変更します。

  app:
    image: ksbysample-webapp-lending:2.5.4
    environment:
      - JAVA_TOOL_OPTIONS=-Dspring.profiles.active=product -Dlogging.appender=CONSOLE
      - SPRING_DATASOURCE_HIKARI_JDBC_URL=jdbc:postgresql://postgresql/ksbylending
      - SPRING_MAIL_HOST=mail-server
      - SPRING_RABBITMQ_HOST=haproxy
    deploy:
      mode: replicated
      replicas: 3
    # entrypoint: /bin/bash
    # stdin_open: true
    # tty: true
  • image: ksbysample-webapp-lending:2.4.3image: ksbysample-webapp-lending:2.5.4 に変更します。

Docker で複数の Tomcat を起動して動作確認する

docker-compose -f docker-compose.mail.yml up -ddocker-compose -f docker-compose.app.yml --compatibility up -d コマンドを実行します。Docker の「Experimental Features」の「Use Docker Compose V2 release candidate」を有効にしていたのですが、V2 では --compatibility オプションが無くなっているようです。「Use Docker Compose V2 release candidate」を無効にすることにします。

f:id:ksby:20210911185058p:plain

http://localhost:8080/haproxy?stats にアクセスして全てのインスタンスが緑色になるまで待ちます。

f:id:ksby:20210911190055p:plain

以下の手順で動作確認します ( 画面キャプチャは省略します )。

  • ブラウザを起動して http://localhost:8080/ にアクセスしてログイン画面を表示します。tanaka.taro@sample.com / taro でログインします。
  • 検索対象図書館登録画面が表示されます。"東京都" で検索した後、一覧表示されている図書館から「国立国会図書館東京本館」を選択します。
  • ログアウトします。
  • ログイン画面に戻るので suzuki.hanako@test.co.jp / hanako でログインします。
  • 貸出希望書籍 CSV ファイルアップロード画面が表示されます。以下の内容が記述された CSV ファイルをアップロードします。

    "ISBN","書名"
    "978-4-7741-6366-6","GitHub実践入門"
    "978-4-7741-5377-3","JUnit実践入門"
    "978-4-7973-8014-9","Java最強リファレンス"
    "978-4-7973-4778-4","アジャイルソフトウェア開発の奥義"
    "978-4-87311-704-1","Javaによる関数型プログラミング"

  • 「貸出状況を確認しました」のメールが送信されるので、メールに記述されている URL にアクセスします。
  • 貸出申請画面が表示されます。3冊程「申請する」を選択して申請します。
  • ログアウトします。
  • 「貸出申請がありました」のメールが送信されるので、メールに記述されている URL にアクセスします。ログイン画面が表示されるので、tanaka.taro@sample.com / taro でログインします。
  • 貸出承認画面が表示されます。「承認」あるいは「却下」を選択して確定させます。
  • ログアウトします。
  • 「貸出申請が承認・却下されました」のメールが送信されるので、メールに記述されている URL にアクセスします。ログイン画面が表示されるので、suzuki.hanako@test.co.jp / hanako でログインします。
  • 貸出申請結果確認画面が表示されるので内容を確認します。

動作確認は特に問題ありませんでした。

docker-compose -f docker-compose.app.yml --compatibility downdocker-compose -f docker-compose.mail.yml downdocker-compose down コマンドを実行してコンテナを停止します。

Docker Compose V2 では --compatibility オプションが無くなったのか。。。と思ったが、docker-compose -f docker-compose.app.yml up -d で app コンテナが3つ起動する

Docker Compose V2 では --compatibility オプションが無くなって残念。。。と思ったのですが、試しに --compatibility オプションを削除して docker-compose -f docker-compose.app.yml up -d コマンドを実行してみたところ app コンテナが3つ起動しました。--compatibility オプションなして同じコンテナの複数起動がサポートされるようになったようです。

f:id:ksby:20210912062225p:plain f:id:ksby:20210912062354p:plain

履歴

2021/09/12
初版発行。