【发布时间】: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