Spring Boot 2.2.x の Web アプリを 2.3.x へバージョンアップする ( その19 )( Docker で複数の Tomcat を起動して動作確認する )
概要
記事一覧はこちらです。
- 今回の手順で確認できるのは以下の内容です。
- Build OCI images with Cloud Native Buildpacks の機能で作成した Docker image で Web アプリを実行して動作確認します。
- 今回はいろいろ苦労したので、動作確認時の手順を
docker-compose up -d
から一通り書いてみます。
参照したサイト・書籍
目次
docker-compose up -d
を実行する- clean タスク実行 → Rebuild Project 実行 → build タスクを実行する
- bootBuildImage タスクを実行する
- Docker で複数の Tomcat を起動して動作確認する
手順
docker-compose up -d
を実行する
docker-compose up -d
を実行します。
rabbitmq-create-user コンテナに以下の画像の赤枠の Adding user "rabbitmq" ...
等のメッセージが出力されることを確認します。これまで何度も実行しましたが、たまに失敗することがありました。
http://localhost:1936/haproxy?stats にアクセスして全て緑になっていることを確認します。
clean タスク実行 → Rebuild Project 実行 → build タスクを実行する
clean タスク実行 → Rebuild Project 実行 → build タスクを実行して BUILD SUCCESSFUL
のメッセージが出力されることを確認します。
bootBuildImage タスクを実行する
bootBuildImage タスクを実行して Successfully built image 'docker.io/library/ksbysample-webapp-lending:2.3.7-RELEASE'
と BUILD SUCCESSFUL
のメッセージが出力されることを確認します。
Docker で複数の Tomcat を起動して動作確認する
docker-compose.app.yml で「bootBuildImage で生成した docker image を利用する場合の設定」の方の app コンテナの設定が有効になっていることを確認してから、
services: # # docker/app/Dockerfile で生成した docker image を利用する場合の設定 # app: # build: # context: . # dockerfile: docker/app/Dockerfile # image: ksbysample-webapp-lending # volumes: # - ./build/libs/ksbysample-webapp-lending-2.3.7-RELEASE.jar:/app.jar # - ./docker/app/docker-entrypoint.sh:/usr/local/bin/docker-entrypoint.sh # environment: # - 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/sh # # stdin_open: true # # tty: true # bootBuildImage で生成した docker image を利用する場合の設定 # docker exec -it ksbysample-webapp-lending_app_1 /bin/bash app: image: ksbysample-webapp-lending:2.3.7-RELEASE 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 ..........
以下のコマンドを実行してメールサーバ、Web アプリを起動します。
docker-compose -f docker-compose.mail.yml up -d
docker-compose -f docker-compose.app.yml --compatibility up -d
app コンテナの1つのログを見て Started Application in ... seconds
のログが出力されることを確認します。
http://localhost:8080/haproxy?stats にアクセスして全て緑になっていることを確認します。
以下の手順で動作確認します ( 画面キャプチャは省略します )。
- ブラウザを起動して 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 down
docker-compose -f docker-compose.mail.yml down
docker-compose down
履歴
2020/12/30
初版発行。