gpt4 book ai didi

asp.net-mvc - 在 docker 中与 .net core 建立 DB2 连接时无法加载 DLL 'libdb2.so'

转载 作者:行者123 更新时间:2023-12-03 15:58:24 25 4
gpt4 key购买 nike

如何使 libdb2.so 文件对 DB2 包可见?我已经验证了该包在 Ubuntu 中工作,但我不能让它在 Docker 中工作。

文件

FROM microsoft/aspnetcore:1.0
#assume the built app is in /app from the build so that the entrypoint command runs in the correct path
WORKDIR /app

#need to specify db2 driver lib
ENV LD_LIBRARY_PATH="/app/db2Lib"

#move all the source code in local directory ./app into the container directory /app
COPY ./app .

RUN mkdir -p db2Lib

ADD db2Lib db2Lib/
ADD ./runImage.sh .


RUN chmod -R a+wrx runImage.sh

EXPOSE 8080
ENTRYPOINT ["./runImage.sh"]

运行Image.sh
#!/bin/bash
ls $LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH
dotnet app.dll

运行图像后,我在控制台中得到以下打印
#from ls $LD_LIBRARY_PATH
icc
libDB2xml4c.so
libDB2xml4c.so.58
libDB2xml4c.so.58.0
libdb2.so
libdb2.so.1
libdb2clixml4c.so
libdb2clixml4c.so.1
libdb2o.so
libdb2o.so.1
#from echo $LD_LIBRARY_PATH
/app/db2Lib

但是当我的应用程序运行时,我收到以下错误

Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'libdb2.so': The specified module could not be found.



如您所见,LD_LIBRARY_PATH 环境变量正确地指向了正确的目录,如文档在 https://www.ibm.com/developerworks/community/blogs/96960515-2ea1-4391-8170-b0515d08e4da/entry/Instructions_for_downloading_and_using_DB2_NET_Core_provider_package?lang=en 上的指示。 .

要仔细检查是否正在设置环境变量,我会
Console.WriteLine(Configuration["LD_LIBRARY_PATH"]);

这确实打印

/app/db2Lib

最佳答案

对于任何 future 的引用,这里是 blog这解释了使其在 Docker 上运行所需的条件。该示例与控制台应用程序相关,但也适用于其他类型的应用程序。
综上所述,系统中需要有libxml2.so.2.7.6。如果没有,可以下载并保存在 lib 文件夹中。这个libxml2.so.2需要链接到libdb2.so

    ln <libpath>/libxml2.so.2.7.6 <libpath>/libxml2.so.2

In the application's DockerFile, these two entries should be there before the entry point
ENV LD_LIBRARY_PATH="<libpath>"
Env PATH=$PATH:"<libpath>/bin:<libpath>/lib"
ENTRYPOINT ["dotnet", "ConsoleApp1.dll"]

关于asp.net-mvc - 在 docker 中与 .net core 建立 DB2 连接时无法加载 DLL 'libdb2.so',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47657658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com