【问题标题】:Dotnet core Web Api 3.1 deploy to docker failingDotnet 核心 Web Api 3.1 部署到 docker 失败
【发布时间】:2020-06-21 15:29:21
【问题描述】:

我尝试将现有的 Dotnetcore Web API 容器化,但在运行容器后我看到以下错误。

我的项目结构 Marketplace | |__ Dockerfile | |__ Marketplace.Backend| |__Marketplace.API___ Marketplace.API.csproj | |__Markplace.Common__ Marketplace.Common.csproj

这是我的 dockerfile

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app

COPY Marketplace.BackEnd/ ./src
WORKDIR /app/src
RUN dotnet restore
RUN dotnet publish -c Release -o out

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/src/out .
ENTRYPOINT ["dotnet", "app/marketplace.api.dll"]

我可以验证生成的图像是否包含 app 文件夹中的 marketplace.api.dll

【问题讨论】:

    标签: docker .net-core asp.net-core-webapi


    【解决方案1】:

    你的工作目录是/app,然后你尝试运行

    ENTRYPOINT ["dotnet", "app/marketplace.api.dll"]
    

    我想你想要

    ENTRYPOINT ["dotnet", "marketplace.api.dll"]
    

    另外,请注意 Docker 中的文件系统区分大小写,因此您可能确实想要

    ENTRYPOINT ["dotnet", "Marketplace.Api.dll"]
    

    【讨论】:

    • 不知道Docker中的文件系统是区分大小写的,SDK丢失的错误让我想到了不同的方向。谢谢!
    • Windows 容器不区分大小写,但 linux 容器是。
    • 没有使用 Windows 容器的经验,但那肯定看起来像 Linux 容器!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    • 2020-06-21
    相关资源
    最近更新 更多