首页 > 解决方案 > Dotnet 核心 Web Api 3.1 部署到 docker 失败

问题描述

我尝试将现有的 Dotnetcore Web API 容器化,但在运行容器后看到以下错误。 在此处输入图像描述

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

这是我的码头文件

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-coreasp.net-core-webapi

解决方案


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

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

我想你想要

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

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

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

推荐阅读