I am attempting to connect to a DB2 server (on prem) from a Windows based Docker container. It is currently using the IMB.Data.DB2.Core nuget package (latest). The docker file is just the auto-generated file that Visual Studio 2019 creates with no changes.
The project is set to 64-bit and there are no errors or warnings on build.
I have searched everywhere for how to make this work and have been unable to find this problem elsewhere. I suspect that the issue is due to my lack of Docker knowledge and DB2 needing something particular setup within the container. I have verified that the files are being copied (locally at least) when building so they should be there.
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"]
There's a default values controller that always works however when calling any code that attempts to access DB2, the following exception method is returned:
Unable to load DLL 'db2app64.dll' or one of its dependencies: The specified module could not be found. (Exception from HRESULT: 0x8007007E
)
I was able to get it to work by adding the following to the Dockerfile above the ENTRYPOINT:
ENV LD_LIBRARY_PATH="/app/clidriver/lib/" Env PATH=$PATH:"/app/clidriver/bin:/app/clidriver/lib" RUN apt-get update; \ apt-get install -y libxml2-dev;
Please note that I switched to a Linux container: sdk:2.2.300-stretch
Please follow the post .Net Core Linux - Docker - Local debugging with DB2
I have included the LD_LIBRARY_PATH variable to be added as a solution. Thanks.
Need to install one of the IBM Data Server Client Packages that ship IBM.Data.DB2.dll and other DB2 .NET assemblies/resources/managed and unmanaged dependencies.
The recommended thin client is IBM Data Server Driver Package, 10.5 Fixpack 5 link for the latest IBM Data Server Client Packages is:
User contributions licensed under CC BY-SA 3.0