【Microsoft Azure】App Serviceへのデプロイが”build/index.html”: No such file or directory”エラーで失敗する

こんばんは。今日は、Microsoft AzureのApp Serviceに関するトラブルシューティングです。

最近Reactで作ったWebアプリをApp Service (Linux)で動かしているのですが、毎回発生する問題があり、そろそろちゃんと対策するか、ということで調べてみました。それでは参ります。

前提

  • 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に固有の問題ではないのかな・・?

今日は調べてみただけですが、一旦ここまで・・

おしまい

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT US
Yuu113
初めまして。ゆうたろうと申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。 日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。