【问题标题】:Docker ASP.NET Core Container is Not Responding on the Configured PortDocker ASP.NET Core 容器在配置的端口上没有响应
【发布时间】:2019-05-17 21:41:14
【问题描述】:

我正在尝试将 ASP.Net Core 应用程序容器化,但在让容器响应配置和映射端口上的请求时遇到问题。

在 IIS 或 IISExpress 中本地运行时,应用程序按预期运行。

镜像构建并且容器运行。一切似乎都可以正常工作,但对http://localhost:49274 的请求总是导致无响应/超时。

此 Dockerfile 基于 Microsoft ASP.Net Core Docker 示例应用程序 - https://github.com/dotnet/dotnet-docker/blob/master/samples/aspnetapp/Dockerfile。示例应用映像运行正常。

我做错了什么?

Dockerfile

FROM mcr.microsoft.com/dotnet/core/sdk:2.1 AS build
WORKDIR /app

# copy csproj and restore as distinct layers
COPY *.sln .
COPY src/Auth.Provider/*.csproj ./src/Auth.Provider/
RUN dotnet restore "src/Auth.Provider/Auth.Provider.csproj" 

# copy everything else and build app
COPY src/Auth.Provider/. ./src/Auth.Provider/
WORKDIR /app/src/Auth.Provider
RUN dotnet publish -c Release -o out

FROM mcr.microsoft.com/dotnet/core/aspnet:2.1 AS runtime
WORKDIR /app
COPY --from=build /app/src/Auth.Provider/out ./
ENTRYPOINT ["dotnet", "Auth.Provider.dll"]

我还尝试将以下命令添加到 Dockerfile:

EXPOSE 49274/tcp
ENV ASPNETCORE_URLS http://*:49274

docker 容器运行命令:

docker run -it -p 49274:49274 --name auth.provider auth.provider:1.0 cmd

测试端口的尝试也失败了:

Test-NetConnection -ComputerName "localhost" -Port 8080

应用初始化:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
  WebHost.CreateDefaultBuilder(args)
    .ConfigureLogging((hostingContext, logging) =>
    {
      logging.ClearProviders();
      logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));

      if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") != EnvironmentName.Development)
      {
        return;
      }

      logging.AddDebug();
      logging.AddConsole();
    })
    .UseNLog()
    .UseKestrel()
    .UseUrls("http://localhost:49274")
    .UseContentRoot(Directory.GetCurrentDirectory())
    .UseIISIntegration()
    .UseStartup<Startup>();

}

【问题讨论】:

    标签: docker asp.net-core dockerfile


    【解决方案1】:

    将 UseUrls 方法调用的 localhost 更改为 * 就可以了。

    .UseUrls("http://localhost:49274")
    
    .UseUrls("http://*:49274")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      相关资源
      最近更新 更多