【问题标题】:Container didn't respond to HTTP pings on port: 3000,容器没有响应端口:3000 上的 HTTP ping,
【发布时间】:2021-03-25 00:42:09
【问题描述】:

我用下面的 Dockerfile 创建了一个 .NET 5 ASP.NET Web 应用程序。

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /source

# copy csproj and restore as distinct layers
COPY *.csproj .
RUN dotnet restore

# copy and publish app and libraries
COPY . .
RUN dotnet publish -c release -o /app --no-restore

# final stage/image
FROM mcr.microsoft.com/dotnet/runtime:5.0
EXPOSE 3000
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["./TestNET5"]

我在 Azure Web 应用程序的配置设置中添加了变量 PORT 和 WEBSITES_PORT,值为 3000,我还添加了 -e environment=Production -e ASPNETCORE_ENVIRONMENT=Production,但我仍然收到以下错误。

Container xxx didn't respond to HTTP pings on port: 3000, failing site start. See container logs for debugging.

我在这里失踪了吗?我已经检查了几篇文章,但似乎找不到解决方案。

【问题讨论】:

  • Azure Web 应用仅支持 http 80 和 https 443 端口。
  • 80 端口也不行。在 Azure 中将 WEBSITES_PORT 和 PORT 设置为 80 似乎无法解决问题。
  • 关于这个问题的任何更新?它解决了你的问题吗?

标签: .net-5 azure-container-registry


【解决方案1】:

如果所有的事情都按照你说的做了,那么可能的原因是你的图片效果不好。

下面我将列出将应用程序映像部署到 Azure 应用服务所需执行的所有操作:

  1. 确保图像可以在本地正常工作;
  2. 设置环境变量WEBSITES_PORT如果容器暴露的端口不是80或443,这里的值为3000;
  3. 设置 docker 注册表的环境变量以验证它是否是私有的,例如,如果您将图像推送到 ACR。

【讨论】:

  • 如果我的本地操作系统是 Windows,我如何使它在本地工作?我是容器新手,所以对我的问题表示歉意。
  • @JoshMonreal 你可以使用Docker Desktop for Windows
  • 嗨,Charles,当我尝试从 ACR 中提取图像时,我收到一条错误消息,指出该图像仅与 Linux 操作系统兼容。
  • @JoshMonreal 您可以更改图像支持的操作系统。更改 Docker 桌面的配置。
猜你喜欢
  • 1970-01-01
  • 2021-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 1970-01-01
相关资源
最近更新 更多