Azure Web AppsでSpringBootアプリケーションを動かす最小構成
やりたいこと
ちょっとお試しでAzure Web AppsにSpringBoot製のWebアプリをデプロイしたいと思ったのですが、公式チュートリアルを眺めていたら「まずMavenプラグインを構成します」と言われて「そうじゃない」ってなったので、開発環境に依存しないJavaアプリの最小構成についてまとめてみたいと思います。
(参考)Spring Boot JAR ファイルの Web アプリを Linux 用の Azure App Service にデプロイする
2019年8月現在、アプリのデプロイ方法は大きく以下の3種類のようです。
- リポジトリと連携しビルドパイプラインを組む
- コンテナをコンテナレジストリから取ってきて起動する
- FTPアップロード
以前はOneDrive経由でのデプロイなどもあったような感じですがほぼなくなっています。
FTPも基本的には推奨されていないようですので、事実上コンテナ起動かビルドパイプラインかの2択という趨勢です。
ビルドに関してはAzure Pipelinesを利用するかKuduでビルドするかのどちらかが基本という感じでしょうか。
ACRが使える環境であればコンテナ化してACR経由でWebAppsを作るのが恐らく最も簡単な構成方法です。
どちらも詳しい記事が色々ありますので詳細については省略します。
ただせっかくですので今回の検証に利用したDockerfileだけ参考に置いておきます。
FROM azul/zulu-openjdk-alpine
VOLUME /tmp
RUN mkdir /app
WORKDIR /app
ENV JAVA_OPTS="-Duser.timezone=Asia/Tokyo"
COPY build/libs/SampleApp.jar /app/SampleApp.jar
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app/SampleApp.jar --server.port=80" ]
alpineベースのOSにzuluがインストールされたイメージが公式から提供されていますので、jarをコピーしてENTRYPOINTを定義するだけ。
後はこれをACRに登録してWebApps側でPULLするように設定すれば終了です。
簡単ですね。
この記事の残りでは、無料範囲で最速で試したい時用にレガシーなFTPで構成する方法についてまとめます。
Web Appsリソースの作成
Javaアプリを構成します。
[公開]で[コード]を選択、
ランタイムスタックでJava SEを選択します。
オペレーティングシステムは現在のところLinuxのみのサポートのようです。
デプロイ
FTPユーザの作成
先程も貼り付けたポータル画面の[デプロイセンター]からFTPを選択し、[ダッシュボード]を押します。
そうすると、FTPサーバでの接続情報が表示されますので、各種情報をコピーしてFTP接続します。
ファイルアップロード
FTPで実行可能jarファイルをアップロードします。
ポータルに表示された接続情報をそのまま利用するとデフォルトでは /site/wwwroot/
がカレントディレクトリになります。
アップロード先はそのままでOK。
起動構成
ポータルの
[構成]メニュー → [全般設定]
から設定します。
- スタック: (今回は)Java8
- メジャーバージョン: Java SE
- マイナーバージョン: Java SE
- スタートアップコマンド:
java -jar /home/site/wwwroot/SampleApp.jar --server.port=80
パスを /home/から始めてフルパスで指定しています。
FTPサーバのRootとは若干ズレているところがハマりポイント。
環境変数は
[構成]メニュー → [アプリケーション設定]
で設定しておくとそのまま渡してくれます。
この状態で[保存]を実行すると設定が保存され、WebAppsに反映されます。
起動するまでしばらく待ってアクセスすると動作が確認できます。
まとめ
終わってみると本当に大したことがない感じですが、「AzureWebAppsでSpringBootを動かす」というキーワードから入ると、パイプラインを組んでビルドをするのが標準だみたいな情報が意外と見つからなかったので、自分なりに整理するのに苦戦した気がします。
次はAzure Reposと連携したAzure Pipelinesによるビルドを試してみたいですね。
Author And Source
この問題について(Azure Web AppsでSpringBootアプリケーションを動かす最小構成), 我々は、より多くの情報をここで見つけました https://qiita.com/kazuhiro1982/items/2cfe322280c045caaa37著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .