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