[英]How to fix “Failed to load resource 404” after deploying angular application to azure portal web app
[英]Application run failed after deploying dockerized image on Azure App Service
我正在嘗試在 MS Azure 應用服務(Web 應用程序作為容器/Web 應用程序)上部署 dockerized React JS 應用程序(使用 ngnix)。 同樣使用 Azure 容器注冊表。
這是我的 Dockerfile
FROM node:14.17.0 as build
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json ./
COPY package-lock.json ./
RUN npm ci --silent
RUN npm install react-scripts -g --silent
COPY . .
RUN npm run build
#prepare nginx
FROM nginx:stable-alpine
COPY --from=build /app/build /usr/share/nginx/html
#fire up nginx
EXPOSE 80
CMD ["nginx","-g","daemon off;"]
能夠在本地機器上將圖像作為容器運行並完美運行。
docker run -itd --name=ui-container -p 80:80 abc.azurecr.io:latest
但是在 Azure App Service/Container Service 上運行圖像后問題開始了,因為它無法 ping 通端口。 錯誤 - 容器未響應端口 80 上的 HTTP ping,站點啟動失敗。 查看容器日志進行調試
這是應用程序服務日志上可用的 docker run 命令
docker run -d --expose=80 --name id_0_f8823503 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITES_PORT=80 -e WEBSITE_SITE_NAME=id -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=id.azurewebsites.net -e WEBSITE_INSTANCE_ID=af26eeb17400cdb1a96c545117762d0fdf33cf24e01fb4ee2581eb015d557e50 -e WEBSITE_USE_DIAGNOSTIC_SERVER=False i.azurecr.io/ivoyant-datamapper
我知道原因是在上面的 docker run 命令中沒有找到 -p 80:80 。 我嘗試了多種方法來解決這個問題,但對我沒有任何幫助。 嘗試添加密鑰:PORT 值:配置應用程序設置中的 80 密鑰:WEBSITES_PORT 值:配置應用程序設置中的 80
默認情況下,應用服務偵聽端口 80/443 並將流量轉發到端口 80 上的容器。 如果您的容器正在偵聽端口 80,則無需設置WEBSITES_PORT應用程序設置。 不需要-p 80:80參數。
只有當它偵聽不同的端口號時,您才可以將WEBSITES_PORT設置為容器的端口號。
現在,為什么 App Service 會報告該錯誤? 可能是您的應用程序在啟動時失敗。 嘗試啟用應用程序日志以查看您是否會獲得更多信息。
已更換
FROM node:14.17.0 as build
和
FROM node:19-alpine as build
應用程序已在 Azure 中成功部署並獲得成功響應。 使用非高山圖像導致 Azure 應用服務出現問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.