2017-09-05 6 views
2

Ich versuche, URL Rewrite 2.0 installiert mit diesem Dockerfile zu erhalten:URL 2.0-Installation schlägt fehl auf Docker

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" 

Wenn ich den Container Bild bauen, sehe ich diese Fehlermeldung:

Die Windows Installer-Dienst konnte nicht zugegriffen werden. Dies kann auftreten, wenn der Windows Installer nicht ordnungsgemäß installiert ist. Wenden Sie sich an Ihr Support-Personal, um Unterstützung zu erhalten.

bei package.log der Suche nach den Behälter läuft, sehe ich:

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 

Ausführen net start msiserver auf dem Laufbehälter gibt eine Meldung, dass der Dienst bereits gestartet ist, und Google sagt 0x80040150 ein Problem sein könnte Lesen der Registrierung.

Wird erwartet, dass das Installieren von URL Rewrite auf diese Weise funktioniert, oder muss ich die Berechtigungen irgendwie erhöhen?

aktualisieren: die gleiche msiexec Befehl auf dem Behälter läuft Laufen erfolgreich installiert URL Rewrite.

Antwort

2

Ich habe es schließlich dank this article herausgefunden. Die Verwendung von PowerShell zum Ausführen von msiexec mit den entsprechenden Switches funktioniert. Seltsamerweise warf es "Kann nicht mit dem Remote-Server verbinden" beim Versuch, auch MSI mit PowerShell zu downloaden, so dass ich auf ADD zurückgreifen.

Hier ist der relevante Teil meiner 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