はじめに
Azure App Service上でSpring Bootで作ったDockerイメージを動かしたので、備忘録としてやったことなどを記しておきます。
環境
- 2020年6月28日時点でのAzure App Service
- Spring Boot 2.3.1
サンプルアプリの実装
サンプルアプリは何でもよかったので、spring.io/guidesにて公開されているサンプルアプリのうち、「Building a RESTful Web Service」を選び実装しました。
Dockerイメージの作成とDocker Hubへのpush
実装したらDockerイメージを作ります。Spring Boot 2.3からは別途Dockerfileを書かずともMavenやGradleのコマンド(mvn spring-boot:build-image
やgradle bootBuildImage
)を実行するだけでDockerイメージを作ることができます。詳細はMaven-pluginやGradle-pluginのドキュメントを参照してください。
Maven-plugin
Gradle-plugin
Docker Hubに作成したイメージを上げたいので、イメージ名を変更します。Gradleの場合はbuild.gradle
に以下の設定を追記します。
bootBuildImage { imageName = "ユーザ名/リポジトリ名" }
Dockerイメージを作成したらdocker push
コマンドでDocker Hubにイメージをpushしておきます。
see. Docker Hub 上のリポジトリ — Docker-docs-ja 17.06 ドキュメント
Azure App Service上でDockerイメージを指定し、起動する
作成したDockerイメージをAzure App Service上で動かすのは、App Service作成時に「公開」の部分に「Dockerコンテナー」を指定してイメージソースにDocker Hubを指定、イメージ名を指定すればOKです。
その後、App Serviceを作成します。
作成後、「構成」をクリックして「アプリケーション設定」の部分に「WEBSITES_PORT」の値として「8080」を指定、保存しておきます。
see.
あとはWebアプリのURLにアクセスするとDockerイメージがApp Serviceに読み込まれてWebアプリが起動します。「コンテナーの設定」をクリックするとログを見ることができます。
以上でDockerイメージをAzure App Service上で動かすことができました。