我已经使用此命令发布了我的控制台应用程序:dotnetpublish-cRelease--self-contained。
我在项目文件夹中创建了一个 dockerfile,这就是其中的内容:
FROM scratch
COPY bin/Release/net7.0/win-x64/publish .
ENTRYPOINT ["JustForDocker.dll"]
如果没有更多本机依赖项,独立的 .NET 应用程序将无法在
scratch
容器中工作。它仅在 .NET 运行时方面是独立的。但.NET 运行时仍然依赖于 OpenSSL 等本机库。相反,您需要使用为 .NET 生成的官方 runtime-deps
容器映像:https://github.com/dotnet/dotnet-docker/blob/main/README.runtime-deps.md。
因此,如果您将
FROM scratch
更改为 FROM mcr.microsoft.com/dotnet/runtime-deps:7.0
,那就应该给您您想要的东西。