【发布时间】:2019-11-04 13:20:27
【问题描述】:
我正在尝试从基于 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"]
有一个默认值控制器始终有效,但是在调用任何尝试访问 DB2 的代码时,将返回以下异常方法:
无法加载 DLL 'db2app64.dll' 或其依赖项之一: 找不到指定的模块。 (HRESULT 的例外情况: 0x8007007E
)
【问题讨论】:
标签: docker .net-core db2 dockerfile asp.net-core-webapi