【发布时间】:2019-02-21 09:15:01
【问题描述】:
我有一个 ASP.NET CORE 应用程序,里面有几个项目和以下 Dockerfile:
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY src/Mbv.Vans.Core/Mbv.Vans.Core.csproj Mbv.Vans.Core/
COPY src/Mbv.Vans.Common/Mbv.Vans.Common.csproj Mbv.Vans.Common/
COPY src/Mbv.Vans.Api/Mbv.Vans.Api.csproj Mbv.Vans.Api/
RUN dotnet restore Mbv.Vans.Api/Mbv.Vans.Api.csproj
COPY . .
FROM build AS publish
RUN dotnet publish Mbv.Vans.Api/Mbv.Vans.Api.csproj --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Mbv.Vans.Api.dll"]
在线RUN dotnet publish Mbv.Vans.Api/Mbv.Vans.Api.csproj --no-restore -c Release -o /app尝试构建项目时失败并报错:
“程序不包含适合入口点的静态'Main'方法”
这是我的 .csproj 文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>1591</NoWarn>
<GenerateProgramFile>false</GenerateProgramFile>
</PropertyGroup>
我搜索了很多关于这个问题的问题并将其分为以下解决方案:
-
COPY . .没有解决这个问题 - 我只有一个
static void main -
<GenereteProgramFile> false没有帮助。
有人可以帮我解决这个可怕的问题吗?
【问题讨论】:
-
你的项目结构是什么?分享给我们,你在哪里运行 docker 命令?对于这个错误,通常是文件夹中没有
Program.cs。 -
了解更多细节会很好。您是否有公开的源文件可以重现该问题?您的 Main 方法位于哪个项目中?您是否尝试在 Docker 上下文之外重现该问题(例如,将您在 Dockerfile 中复制的文件夹集复制到计算机上的单独文件夹并尝试从该新位置构建)?
-
我遇到了类似的问题。看看stackoverflow.com/questions/55816916/…也许会起作用
标签: docker asp.net-core