こんばんは。今日は、Microsoft AzureのApp Serviceに関するトラブルシューティングです。
最近Reactで作ったWebアプリをApp Service (Linux)で動かしているのですが、毎回発生する問題があり、そろそろちゃんと対策するか、ということで調べてみました。それでは参ります。
Contents
前提
- App Service (Linux, Node.js 14LTS)
- React.jsアプリケーションをデプロイ
- App Serviceの継続的デプロイ機能を使ってGithub ActionsによるCIを構成
問題
コードの変更をGithubにプッシュして、それをトリガーにApp Serviceへのデプロイが行われると、必ず失敗してしまう。そして何故かもう一度同じデプロイを手動で行うと、成功する。
#Oryx Buildのログ
The build folder is ready to be deployed.
You may serve it with a static server:
yarn global add serve
serve -s build
Find out more about deployment here:
https://cra.link/deployment
Done in 141.13s.
Zipping existing node_modules folder...
Done in 46 sec(s).
Preparing output...
Copying files to destination directory '/home/site/wwwroot'...
rsync: rename "/home/site/wwwroot/build/.index.html.FTLfQe" -> "build/index.html": No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]
rsync: rename "/home/site/wwwroot/build/.index.html.FTLfQe" -> "build/index.html": No such file or directory (2)\nrsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]\n/opt/Kudu/Scripts/starter.sh oryx build /home/site/repository -o /home/site/wwwroot --platform nodejs --platform-version 14 -i /tmp/8d9949125888328 -p compress_node_modules=tar-gz --log-file /tmp/build-debug.log
原因と解決方法
ここで同じ問題が議論されていた。
https://github.com/microsoft/Oryx/issues/909
ここでの見解によると、デプロイ時に、稼働中のアプリと何らかの競合が起こって起きるエラーの模様。なるほど、だから2回目は成功するのか(1回目のデプロイ失敗でアプリが立ち上がっていないため)
バグなのかどうかは、ここの議論からは追えなかったが、取り急ぎの回避策として、スロットの利用やRUN_FROM_PACKAGEオプションの利用が提案されている。ちょっとまた試してみようと思う。
(試したらまた更新します)
RUN_FROM_PACKAGEの詳細は以下を参照ください。
https://docs.microsoft.com/ja-jp/azure/app-service/deploy-run-package
しかし同じエラーメッセージは、App ServiceでないHeroku上でたくさん報告されている模様。App Serviceに固有の問題ではないのかな・・?
今日は調べてみただけですが、一旦ここまで・・
おしまい
コメントを残す