【问题标题】:Net Core MVC Dockeri file not working.There is no error my local projectNet Core MVC Dockeri 文件不起作用。我的本地项目没有错误
【发布时间】:2021-07-27 21:35:25
【问题描述】:

我有在分层架构中运行的 net core mvc 项目。它在本地运行良好,但不适用于 docker

FROM mcr.microsoft.com/dotnet/sdk:5.0 as build
WORKDIR /app
COPY ./MyBlog.Shared/MyBlog.Shared.csproj ./MyBlog.Shared/
COPY ./MyBlog.Data/MyBlog.Data.csproj ./MyBlog.Data/
COPY ./MyBlog.Services/MyBlog.Services.csproj ./MyBlog.Services/
COPY ./MyBlog.Entities/MyBlog.Entities.csproj ./MyBlog.Entities/
COPY ./MyBlog.Mvc/MyBlog.Mvc.csproj ./MyBlog.Mvc/
COPY MyBlog.sln .
RUN dotnet restore
COPY . .
RUN dotnet publish ./MyBlog.Mvc/MyBlog.Mvc.csproj -o /publish/
FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /app
COPY --from=build /publish .
ENV ASPNETCORE_URLS="http://*:5000"
ENTRYPOINT ["dotnet","MyBlog.Mvc.dll" ]

【问题讨论】:

    标签: docker asp.net-core n-layer


    【解决方案1】:

    如您所见,该应用仅收听localhost。你需要设置一个环境变量来告诉 ASP.NET Core 去监听所有的接口,而不是仅仅localhost 是主机无法访问的。

    ASPNETCORE_URLS="https://+;http://+"
    

    您有一个ENV ASPNETCORE_URLS="http://*:5000" 命令,但它似乎没有生效,请尝试将其指定为参数:

    docker run 
      --rm -it 
      -p 8000:80 
      -p 8001:443 
      -e ASPNETCORE_URLS="https://+;http://+" 
      -e ASPNETCORE_HTTPS_PORT=8001 
      -e ASPNETCORE_Kestrel__Certificates__Default__Password="password" 
      -e ASPNETCORE_Kestrel__Certificates__Default__Path=\https\aspnetapp.pfx 
      -v %USERPROFILE%\.aspnet\https:C:\https\ 
      mcr.microsoft.com/dotnet/core/samples:aspnetapp
    

    请参阅 Microsoft 的文档,了解如何对 ASP.NET Core 应用程序进行 dockerize。

    【讨论】:

    • 谢谢你,我会试试你的建议
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 2013-10-01
    相关资源
    最近更新 更多