動かない
おかしい、色々調べてあってるはずなのにとなってハマってしまいました。
App Serviceのデプロイセンターのログ
Stopping site xxx because it failed during startup
前提
Web App
コンテナデプロイ
Linux
Azure Container Registry
単一コンテナー
開発環境 Mac M1
確認事項
- アドレス 0.0.0.0
- ポート 8080または80
- それ以外の場合、Appserviceの環境変数にWEBSITES_PORTとして設定している
- ビルドしたイメージが以下コマンドでアクセス可能
docker run -p 8080:8080 {イメージ名}:{タグ}
- DockerfileでENTRYPOINTなどの起動コマンドがない場合、以下コマンドでDockerの中に入り起動コマンドを実行してアクセスできる
- そのコマンドをApp Serviceのスタートアップコマンドに設定している
docker ps
docker exec -it {コンテナID} /bin/bash
それでも動かない
ACRへPUSHするイメージをビルドする際、 --platform linux/amd64を指定する
docker build --platform linux/amd64 -t {イメージ名}:latest . \
これで動きました
M1やM2のMacを指定していると、CPUアーキテクチャが違うらしくエラーになるとのことでした。
エラーが出ない(見つけられない、、)のですごく時間使ってしまいました。。。
もっと詳しいのあった
この記事を書くときに調べると、エラー調査方法と、CPUアーキテクチャの調べ方まで載っている記事を見つけました
(早く知りたかった。。。)
https://zenn.dev/murakami_koki/articles/a3cf2ab6f5f261