作者:AMY_Only | 来源:互联网 | 2023-01-19 19:30
我正在尝试使用此Dockerfile安装URL Rewrite 2.0:
FROM microsoft/aspnet:4.6.2
WORKDIR /inetpub/wwwroot
COPY obj/Docker/publish .
ADD https://download.microsoft.com/download/C/9/E/C9E8180D-4E51-40A6-A9BF-776990D8BCA9/rewrite_amd64.msi /install/rewrite_amd64.msi
RUN net start MSIServer
RUN msiexec.exe /i c:\install\rewrite_amd64.msi /quiet /passive /qn /L*v "C:\package.log"
构建容器映像时,看到以下错误消息:
无法访问Windows Installer服务。如果未正确安装Windows Installer,则会发生这种情况。请与您的支持人员联系以获得帮助。
运行容器后查看package.log,我看到了:
SI (c) (30:A4) [08:32:10:438]: Failed to connect to server. Error: 0x80040150
SI (c) (30:A4) [08:32:10:438]: Note: 1: 2774 2: 0x80040150: 2774 2: 0x80040150
执行中 net start msiserver
在正在运行的容器上将返回一条消息,表明该服务已启动,Google表示读取注册表可能是0x80040150的问题。
是否期望以这种方式安装URL Rewrite可以正常工作,还是我需要以某种方式提升权限?
更新:msiexec
在正在运行的容器上运行相同的命令将成功安装URL Rewrite。
1> Jared..:
由于这篇文章,我终于弄清楚了。使用PowerShell运行msiexec
适当的开关即可。奇怪的是,当尝试同时使用PowerShell 下载 MSI 时,它抛出“无法连接到远程服务器” ,因此我诉诸于使用ADD
。
这是我的Dockerfile的相关部分:
WORKDIR /install
ADD https://download.microsoft.com/download/C/9/E/C9E8180D-4E51-40A6-A9BF-776990D8BCA9/rewrite_amd64.msi rewrite_amd64.msi
RUN Write-Host 'Installing URL Rewrite' ; \
Start-Process msiexec.exe -ArgumentList '/i', 'rewrite_amd64.msi', '/quiet', '/norestart' -NoNewWindow -Wait