gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 17:45:59 25 4
gpt4 key购买 nike

我正在为我的应用程序设置一个新的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指示需要重新启动。

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

最佳答案

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

因此,我通过添加一行来复制并安装 Dockerfile 来更新了vc_redist.x64.exe,此问题已为我解决。
Dockerfile的片段为我解决了这个问题。

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.7.2
COPY vc_redist.x64.exe c:/ \
msodbcsql_17.3.1.1_x64.msi c:/
RUN c:\\vc_redist.x64.exe /install /passive /norestart
RUN msiexec.exe /i C:\\msodbcsql_17.3.1.1_x64.msi /norestart /qn /quiet /passive IACCEPTMSODBCSQLLICENSETERMS=YES

...

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

关于docker - 如何在基于Windows Server Core的Docker镜像中安装ODBC Driver 17?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57051311/

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