如何创建独立的 dotnet 7 控制台应用程序的 docker 映像

问题描述 投票:0回答:1

我已经使用此命令发布了我的控制台应用程序:dotnetpublish-cRelease--self-contained。

我在项目文件夹中创建了一个 dockerfile,这就是其中的内容:

FROM scratch
COPY bin/Release/net7.0/win-x64/publish .
ENTRYPOINT ["JustForDocker.dll"]
  • 我的控制台应用程序只打印 hello world。
  • 我尝试使用以下命令构建此 docker 映像: docker build -t dockername 。
  • 我创建了 docker 映像并尝试使用以下命令运行它:docker run dockername
  • 但是我看不到输出,我只能看到空白输出,没有其他内容,但它应该打印 hello world 作为输出。
c# .net docker dockerfile docker-image
1个回答
0
投票

如果没有更多本机依赖项,独立的 .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
,那就应该给您您想要的东西。

© www.soinside.com 2019 - 2024. All rights reserved.