🗂
AppServiceにデプロイしたい!
はじめに
AppServiceにコンテナベースでデプロイをしようと思っていました。
以前は出来ていた手順がなぜか出来なかったので別の手順を探してデプロイをしました。
いつものやり方であれば、AzureContainerRegistry(以下ACR)を使用して、そこのイメージをデプロイして、AppServiceからコンテナを選択していました。
やっていたこと
- 開発していたものを、コンテナ形式でデプロイするためにdocker buildをして、ローカルで確認する。
 
cd frontend
docker build --platform linux/amd64 -t hoge:latest .
docker run -p 3000:3000 hoge:latest
localhost:3000でアプリの立ち上げが確認できたので、このイメージをACRに持っていく。
- 現在のイメージをACR用にタグ付け
 
docker tag hoge <ACR_NAME>.azurecr.io/hoge:latest
- ACRへのイメージプッシュ
 
docker push <ACR_NAME>.azurecr.io/hoge:latest
AppServiceの設定をしたりして、ログを確認すると...
# ログストリーム
exec format error
ARM64向けにビルドしたバイナリをAMD64で動かそうとして失敗してしまう。
いつもと同じ手順でうまくいかない...。
解決策
ACR上でイメージをビルド&プッシュ
az acr build \
  --registry devassignmanageacr01 \
  --image assign-manage-frontend:latest \
  --file frontend/Dockerfile \
  frontend
なんかこれでいけた!
AppServiceを見ると無事アプリがデプロイできました!
これから最終手段はこれを使おう。
Discussion