Spring Bootで作成したアプリをコンテナー化して Azure App Serviceにデプロイする


内容

  • Docker imageの作成
  • Azure Container RegistryにDocker Imageをpushする
  • Webアプリのデプロイ
  • アプリを更新

参考にしたサイト

https://docs.microsoft.com/ja-jp/learn/modules/deploy-run-container-app-service/
https://spring.pleiades.io/guides/gs/spring-boot-docker/

Docker imageを作成

  • jarを作成する(jarの作成方法はこちらをご参照ください。)
  • Dockerfileを作成する
Dockerfile
FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
  • docker Imageを作成する
#Dockerfileが置いてあるディレクトリで実行
docker build --build-arg JAR_FILE=build/libs/*.jar -t hogehoge-web-app .
  • dockerイメージを起動して動作確認
docker run -p 8080:80 -t hogehoge-web-app

Azure Container Registryにdocker Imageをpushする

AzureポータルにてContainer Registryの作成

Azure Container RegistryにPush

  • アクセスキーを取得する

  • Registryサーバにログイン

docker login HoggehogeContainers.azurecr.io --username HoggehogeContainers
# パスワードを聞かれるのでアクセスキーを取得するで取得したパスワードを入力する
  • Tagを設定する
docker tag hogehoge-web-app HoggehogeContainers.azurecr.io/hogehoge-web-app:latest
  • ImageをAzure Container RegistryにPushする
docker push HoggehogeContainers.azurecr.io/hogehoge-web-app:latest

Webアプリのデプロイ

Azure App Serviceの作成

  • Dockerコンテナーを選択してWebアプリを作成する

コンテナーの設定

動作確認

  • 概要に記載されているURLにアクセスする

アプリを更新

  • Docker ImageをビルドしてPushする
docker build --build-arg JAR_FILE=build/libs/*.jar -t hogehoge-web-app .
docker tag hogehoge-web-app HoggehogeContainers.azurecr.io/hogehoge-web-app:latest
docker push HoggehogeContainers.azurecr.io/hogehoge-web-app:latest
  • 概要に記載されているURLにアクセスする