2017-09-05 69 views
2

我試圖讓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重寫。

回答

2

我終於想通了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