gpt4 book ai didi

docker - 如何使用ASP.Net Core从Docker容器连接到DB2?

转载 作者:行者123 更新时间:2023-12-02 18:27:58 25 4
gpt4 key购买 nike

我试图从基于Windows的Docker容器连接到DB2服务器(本地)。当前正在使用IMB.Data.DB2.Core nuget包(最新)。 docker 文件只是Visual Studio 2019创建的自动生成的文件,没有任何更改。

该项目设置为64位,并且在构建时没有错误或警告。

我到处都在搜索如何进行这项工作,却无法在其他地方找到此问题。我怀疑这个问题是由于我缺乏Docker知识,而DB2需要在容器内进行一些特殊设置。我已经验证了在构建文件时已复制文件(至少在本地),因此它们应该在此处。

Dockerfile:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-nanoserver-1809 AS base  
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-nanoserver-1809 AS build
WORKDIR /src
COPY ["DockerDb2Test.csproj", ""]
RUN dotnet restore "DockerDb2Test.csproj"
COPY . .
WORKDIR "/src/"
RUN dotnet build "DockerDb2Test.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "DockerDb2Test.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "DockerDb2Test.dll"]

有一个缺省值 Controller ,该 Controller 始终有效,但是在调用任何试图访问DB2的代码时,将返回以下异常方法:

Unable to load DLL 'db2app64.dll' or one of its dependencies: The specified module could not be found. (Exception from HRESULT: 0x8007007E



)

最佳答案

通过将以下内容添加到ENTRYPOINT上方的Dockerfile中,我能够使其工作:

ENV LD_LIBRARY_PATH =“/ app / clidriver / lib /”
Env PATH = $ PATH:“/ app / clidriver / bin:/ app / clidriver / lib”
运行apt-get更新; \
apt-get install -y libxml2-dev;

请注意,我切换到Linux容器:sdk:2.2.300-stretch

关于docker - 如何使用ASP.Net Core从Docker容器连接到DB2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56707690/

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