SAK*_*SAK 9 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
...
Run Code Online (Sandbox Code Playgroud)
当我运行时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
Run Code Online (Sandbox Code Playgroud)
代码1603表示需要重新启动。
我不确定如何重新启动图像。我该如何继续呢?没有驱动程序,我将无法运行我的应用程序。
SAK*_*SAK 12
因此,我在启用日志记录的容器中手动运行 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
...
Run Code Online (Sandbox Code Playgroud)
只需在此处发布此答案,以防其他人偶然发现同一问题。
| 归档时间: |
|
| 查看次数: |
4245 次 |
| 最近记录: |