URL重写2.0安装失败的码头工人

URL重写2.0安装失败的码头工人

问题描述:

我试图让URL重写2.0安装在使用本Dockerfile:URL重写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返回该服务已启动的消息,谷歌表示,0x80040150可能是一个问题阅读注册表。

是否期望以这种方式安装URL重写应该起作用,还是需要以某种方式提升权限?

更新:运行运行容器的同一msiexec命令成功安装URL重写。

我终于想通了this article。使用PowerShell运行msiexec并使用适当的开关工作。奇怪的是,它试图还下载 MSI使用PowerShell时,抛出“无法连接到远程服务器”,所以我诉诸使用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