我正在运行dotnet core 2.0控制台项目。 尝试从Docker运行时遇到以下错误。
遇到致命错误。库'libhostpolicy.so'需要 在'/ app'中找不到执行应用程序。
答案 0 :(得分:3)
经过一段时间的谷歌后,我发现了这一点:
https://github.com/aspnet/aspnet-docker/issues/301
我不确定是什么造成的,但似乎已经消失了。它的 可能是因为我有一个appSettings.json的案例不匹配而不是 appsettings.json,这意味着文件没有被加载。 但是可怕的错误。
在我的情况下,我忘了把appsettings.json复制到版本上。
希望这可以帮助其他人并在谷歌搜索中获得更高的收益。
答案 1 :(得分:1)
经过更多的谷歌搜索后,我们找到了这个链接:
http://szahariev.blogspot.co.nz/2016/10/libhostpolicyso-was-not-found-error.html
这使我们发现我们以某种方式设法从我们的.csproj文件中手动删除(在我们的例子中)<OutputType>Exe</OutputType>
行。所以根本没有创建 runtimeconfig.json 。
答案 2 :(得分:0)
对我来说,必须将以下行添加到项目文件的 PropertyGroup 部分中来达到目的:
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
答案 3 :(得分:0)
就我而言,我在Linux
的{{1}}计算机上收到此错误。已通过正确安装WorkerService
及其.Net Core
来解决。
答案 4 :(得分:0)
在ab_errors = df.loc[(df['a'] > df['b'])]
bc_errors = df.loc[(df['b'] > df['c'])]
顶部,我还必须用GenerateRuntimeConfigurationFiles
替换<TargetFramework>netstandard2.1</TargetFramework>
。
所以可能与.NET SDK版本安装有关。
答案 5 :(得分:0)
以上对我都没有帮助,但我的情况有所不同:我的项目是一个 aspnet 核心 3.1 webapi。我按照 tutorial 的说明操作并看到此错误消息。一段时间后,我想到将 dockerfile
中的基本映像从 microsoft/aspnetcore:2.0
更改为 mcr.microsoft.com/dotnet/core/aspnet:3.1 AS runtime
,类似于 MS 页面上关于 ASP.NET docker 映像的 hint核心和错误消失了。
所以我想说这个错误的根本原因可能是一个不兼容的基础镜像。
答案 6 :(得分:0)
所以上述答案都不适合我,但我终于找到了问题,它出在 API 的 .csproj 文件中,导致托管 API 的 docker 容器不以消息开头主题标题。
这是在 PropertyGroup
节点中添加的行,大概是在有人为 Windows 发布文件,然后签入更新的 .csproj 时
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
事实证明这是一个发布选项。删除它会将项目设置为默认值可移植(在 UI 中),如果明确指定,则该值在文件中为“任何”。删除上面的行为我解决了问题。
编辑
顺便提一下,我可以通过将 Dockerfile dotnet publish args 更改为:
RuntimeIdentifier
重要的部分是为 alpine-linux 添加了 win-x64
和 RUN dotnet publish ./src/API.csproj --self-contained --runtime linux-musl-x64 --configuration Release --output /app/publish
...这个镜像:--self-contained
此构建映像为 --runtime linux-musl-x64
答案 7 :(得分:0)
就我而言,问题是指定要运行的 .dll 不正确(库而不是 Web 应用程序)。
首先我成功启动服务
dotnet publish "MyProject.csproj" -c Release -o D:\publish --self-contained --runtime linux-x64
并在日志中看到一条关于无效 .dll 的消息。
然后我更正了 .dll 并尝试发布独立的和依赖于框架的 - 两者都成功启动。
所以理性可能很棘手。
答案 8 :(得分:0)
与 Docker 无关,但在尝试调试我通过命令行(Azure Func Core 工具)创建的 Azure 核心功能时出现错误。当我尝试创建新的调试器配置时,VS Code 中的 launch.json 没有正确自动生成。然后我使用 Azure Function 扩展重新创建了一个新的 Function App 项目并复制了生成的 launch.json。这个文件对我有用。
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to .NET Functions",
"type": "coreclr",
"request": "attach",
"processId": "${command:azureFunctions.pickProcess}"
}
]
}