【发布时间】:2023-03-28 22:12:01
【问题描述】:
我有一个 dotnet 项目,当我在 docker 容器中运行它时,构建正常并且程序启动(它记录一切都很好),但是当我在邮递员中发出请求时,我收到了一个套接字挂断错误。可能是什么原因?当我通过 dotnet run 命令手动启动服务器时,它工作正常。
这是我的 dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
WORKDIR /src
COPY ["kisc.csproj", ""]
RUN dotnet restore "./kisc.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "kisc.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "kisc.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
EXPOSE 5000
ENTRYPOINT ["dotnet", "kisc.dll"]
容器日志
warn: Microsoft.AspNetCore.Server.Kestrel[0]
Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Cannot assign requested address'.
info: Microsoft.Hosting.Lifetime[0]
Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
Content root path: /app
【问题讨论】:
-
@MichaelMao 阅读您的链接后。我和OP有同样的问题。将监听器从 localhost:5000 更改为 :5000 为我解决了这个问题。
-
@AkezhanOb1 你有解决办法吗?
标签: c# .net docker .net-core dockerfile