Как подключиться к DB2 из док-контейнера с помощью ASP.Net Core? - PullRequest
1 голос
/ 21 июня 2019

Я пытаюсь подключиться к серверу DB2 (предварительно) из контейнера Docker на базе Windows.В настоящее время он использует пакет nuget IMB.Data.DB2.Core (последний).Файл Docker - это просто автоматически сгенерированный файл, который Visual Studio 2019 создает без изменений.

Проект настроен на 64-разрядную версию, и при сборке нет ошибок или предупреждений.

Iвезде искали, как это сделать, и не смогли найти эту проблему где-либо еще.Я подозреваю, что проблема связана с тем, что у меня недостаточно знаний о 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"]  

Есть контроллер значений по умолчанию, который всегда работает при вызовеПри любом коде, который пытается получить доступ к DB2, возвращается следующий метод исключения:

Невозможно загрузить DLL 'db2app64.dll' или одну из ее зависимостей: Указанный модуль не найден.(Исключение из HRESULT: 0x8007007E

)

Ответы [ 2 ]

1 голос
/ 24 июня 2019

Я смог заставить его работать, добавив следующее в Dockerfile над 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;

Обратите внимание, что я перешел на контейнер Linux: sdk: 2.2.300-stretch

0 голосов
/ 23 июня 2019

Требуется установить один из клиентских пакетов IBM Data Server, которые поставляют IBM.Data.DB2.dll и другие сборки / ресурсы / управляемые и неуправляемые зависимости DB2 .NET.

Рекомендуемый тонкий клиент - IBM DataПакет драйверов сервера, ссылка 10.5 Fixpack 5 для последних клиентских пакетов IBM Data Server:

http://www -01.ibm.com / support / docview.wss? Uid = swg24038920

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...