LibGit2Sharp在 Asp.Net Core 3.1 docker 镜像中中无法使用的问题

The type initializer for ‘LibGit2Sharp.Core.NativeMethods‘ threw an exception. Unable to load shared library ‘git2-106a5f2‘ or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libgit2-106a5f2: cannot open shared object file: No such file or directory

搜索了很多, 看起来全地球大家都遇到了, 然后大家都解决了, 然后就我没解决,

比如:加入   <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>

或者加入

<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; </IncludeAssets>

把 linux-x64 下的  libgit2-106a5f2.so 拷贝到 程序目录  lib目录等, 都没有用。

常识了各种方法, 问题依旧,

折磨了一个小时后, 突然想到一个命令, ldd  , 于是在容器中执行了一下 ldd  libgit2-106a5f2.so

发现俩not  found , 看起来库不对劲。,最后查看容器的对应库版本是 1.1.0 ,查看了 libgit2sharp.nativebinaries\2.0.306\runtimes\ 下面  所有libgit2 的库 ldd 信息, 发现debian 9 是正确符合这个版本,

最后发现是由于项目的  RuntimeIdentifier 不设置默认是linux-64 ,然后项目加入  <RuntimeIdentifier>debian.9-x64</RuntimeIdentifier> 后, "libgit2sharp.nativebinaries\2.0.306\runtimes\debian.9-x64\native\libgit2-106a5f2.so" 文件使用的是 libssl.so.1.1.1 的版本   然后程序镜像重新打包重新运行, 一切OK .

原文地址:https://www.cnblogs.com/MysticBoy/p/12302094.html

时间: 2024-11-24 09:35:42

LibGit2Sharp在 Asp.Net Core 3.1 docker 镜像中中无法使用的问题的相关文章

Docker &amp; ASP.NET Core (5):Docker Compose

原文:Docker & ASP.NET Core (5):Docker Compose 第一篇:把代码连接到容器 第二篇:定制Docker镜像 第三篇:发布镜像 第四篇:容器间的连接 Docker Compose简介 Compose是一个用来定义和运行多容器Docker应用的工具.使用Compose的时候,你可以使用一个YAML文件来配置你应用的服务.然后根据配置,使用一个命令即可创建并运行所有的服务. 使用Compose的时候通常分三步: 使用Dockerfile定义你的环境 在docker-

将 ASP.NET 5 应用作为 docker 镜像发布 (Linux版)

将 ASP.NET 5 应用作为 docker 镜像发布 (Linux版)? 提示 本文更新时间:2015年12月20日. 注解 如果你需要将 docker 镜像运行在Windows平台,或者使用在 Visual Studio 2015 上,请看稍后的一片博文(目前未发布) 将 ASP.NET 5 应用作为 docker 镜像发布 (Windows版) 创建 ASP.NET 5 项目? 首先,你需要一个已经完成的 ASP.NET 5 应用,如果还没有的话,可以参考 在 Mac OS 上创建的 A

Windows下构建ASP.NET Core+Code First+Docker

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 背景介绍 本文将会示范如何在Windows系统下基于ASP.NET Core构建跨平台服务,并通过Docker容器运行发布. 首先说一下为什么选择这一套组合: 我本人和我们Code4Thought团队关注一切具备生产力的技术和工具,话说有所了解

基于VS2017的Docker Support体检ASP.NET Core站点的Docker部署

最近在学习如何用 Docker 部署生产环境中的 ASP.NET Core 站点,作为一个 Docer 新手,从何处下手更容易入门呢?一开始就手写 Docker 配置文件(Docfile, docker-compose.yml)容易让人产生挫败感,想到 Visual Studio 2017 对 Docker 的支持(Docker Support),也许借助它自动生成Docker配置文件.初步体验一下 Docker 部署是一个入门捷径,遂据此想法尝试了一下,感觉不错. 1. 启用 VS2017 的

Asp.Net Core 发布到 Docker(Linux Centos 虚拟机,使用Dockerfile)

实践一下 Asp.Net Core (基于.net core 2.2)部署到Docker 一.准备工作: 1. 使用Virtualbox创建一个Centos系统的虚拟机,并安装docker和vim 2. 配置好端口(如下图,后面需要使用) 3. 准备一个网站发布包(我采用的默认的Asp.Net Core MVC),windows发布时的配置(也可以在linux上进行发布),将发布包放入linux虚拟机(我的路径是:/root/Root/DefaultHttp/publish) 4. 测试一下发布

asp.net core 发布到docker 极简步骤

1.使用dotnet命令发布项目 2.把发布成功的文件通过scp等工具发布到linux服务器上,在当前目录下新建一个dockerfile 3.使用asp.net core镜像为底包构建一个新的镜像 4.运行容器 原文地址:https://www.cnblogs.com/kklldog/p/9452217.html

.Net Core(完) 创建Docker镜像

使用Docker可以在操作系统上分出多个独立的区域(容器/Container),各个容器之间基本隔离,且可以有自己单独的系统配置.软件等,各个容器之间的软件基本不会互相干扰.Docker上配置好的容器可以随意移动到其它计算机中运行.Docker可以很好得保证应用之间的互相隔离,同时Docker的进程跑在原生操作系统上,不会像虚拟机哪样性能差.Docker还能更好地满足网站对于可伸缩性的要求,可以按需自动扩容,同时docker还具有"即抛"的特性,访问高峰过去后也可以减少容器的数量. 一

【Asp.Net Core】在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序

前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布.我一直在想,怎么能够用这个地表最强IDE工具编写Angular4的Asp.Net Core项目.经过不懈的研究.终于的得到了一套很好的解决方案与大家分享. 文章转载请著名出处:http://www.cnblogs.com/smallprogram 我们的目的 随着Web技术的快速发展,新的技术层出

【ASP.NET Core】如何隐藏响应头中的 “Kestrel”

全宇宙人民都知道,ASP.NET Core 应用是不依赖服务器组件的,因此它可以独立运行,一般是使用支持跨平台的 Kestrel 服务器(当然,在 Windows 上还可以考虑用 HttpSys,但要以管理员身份运行). 尽管 SDK 文档中推荐我们用服务器组件来“反向”代理,但独立运行也是允许的.当 Web 应用独立运行的时候,客户端发出请求后,在响应的 HTTP 消息中,会附上一个 Server 头,其值就是 Kestrel.如下面的高清无码无水印截图所示. 看到了吧,Server = Ke