如何在基于Windows Server Core的Docker映像中安装ODBC Driver 17?

时间:2019-07-16 06:34:58

标签: docker dockerfile docker-for-windows

我正在为我的应用程序设置一个新的docker windows servercore映像。数据访问使用ODBC Driver 17 for SQL Server。我需要在映像上安装它,因此在我的Dockerfile中,我包括以下内容:

FROM mcr.microsoft.com/windows/servercore:ltsc2016

COPY msodbcsql_17.3.1.1_x64.msi c:\\msodbcsql_17.3.1.1_x64.msi

RUN msiexec.exe /i C:\\msodbcsql_17.3.1.1_x64.msi /norestart /qn IACCEPTMSODBCSQLLICENSETERMS=YES
...

运行docker build...时出现以下错误

The command 'cmd /S /C msiexec.exe /i C:\\msodbcsql_17.3.1.1_x64.msi /norestart /qn IACCEPTMSODBCSQLLICENSETERMS=YES' returned a non-zero code: 1603

代码1603表示需要重新启动。

我不确定如何重新启动图像。我该如何进行呢?没有驱动程序,我将无法运行我的应用程序。

1 个答案:

答案 0 :(得分:1)

因此,我在启用日志记录的情况下在容器中手动运行了MSI。事实证明,由于缺少VC ++可再发行组件而导致失败。

因此,我通过添加一行以复制并安装vc_redist.x64.exe的方式来更新Dockerfile,该问题已为我解决。

只是在这里发布此答案,以防其他人偶然发现同一问题。