【问题标题】:Application run failed after deploying dockerized image on Azure App Service在 Azure App Service 上部署 dockerized 图像后应用程序运行失败
【发布时间】:2022-12-15 04:46:04
【问题描述】:

我正在尝试在 MS Azure 应用服务(Web 应用程序作为容器/Web 应用程序)上部署 dockerized React JS 应用程序(使用 nginx)。同样使用 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

任何帮助/领导都应不胜感激。 反对者可以发表评论吗?

【问题讨论】:

    标签: azure docker nginx azure-web-app-service azure-container-service


    【解决方案1】:

    默认情况下,应用服务侦听端口 80/443 并将流量转发到端口 80 上的容器。如果您的容器正在侦听端口 80,则无需设置网站_端口应用程序设置。这-p 80:80不需要参数。

    你会设置网站_端口仅当它侦听不同的端口号时才更改为容器的端口号。

    现在,为什么 App Service 会报告该错误?可能是您的应用程序在启动时失败。尝试启用应用程序日志以查看您是否会获得更多信息。

    【讨论】:

    • 我不确定错误。任何其他可能的方法来摆脱这个错误?
    猜你喜欢
    • 2017-06-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 2019-10-05
    • 2020-02-28
    相关资源
    最近更新 更多