2

在Docker for Windows中運行我的一個解決方案時遇到問題。 我用下面的dockerfile:適用於Windows的Docker - 內部服務器錯誤

# escape=` 
FROM microsoft/iis 
SHELL ["powershell", "-command"] 
# Install ASP.NET 
RUN Install-WindowsFeature NET-Framework-45-ASPNET; ` 
    Install-WindowsFeature Web-Asp-Net45 
# Configure website 
EXPOSE 8000 
RUN Remove-Website -Name 'Default Web Site'; ` 
md c:\barometer; ` 
New-Website -Name 'barometer' ` 
      -Port 8000 -PhysicalPath 'c:\barometer' ` 
      -ApplicationPool '.NET v4.5' 
COPY PublishOutput c:\barometer 

我的構建步驟如下:

docker build -t mvcbarometer . 
docker run -d --name barometer mvcbarometer 
docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" barometer 

一切都建立罰款,但訪問該網站時,我收到以下錯誤:「有一個問題與您正在尋找的資源,並且無法顯示。「

- http://imgur.com/a/areF8

出於某種原因,我不能得到通過Visual Studio調試時,即使我使用的是相同的配置所顯示的經典黃色錯誤頁面。

它似乎並不像docker在任何地方記錄任何錯誤,所以我有點卡在調試問題。 我的其他(更基本的)項目與類似的碼頭構建設置正常工作。

我在某處看到docker有某些web.config元素存在問題,但我找不到任何有關該主題的真實文檔。

任何人都可以幫助我調試問題?

回答

2

我終於找到了問題。 我正在使用網址重寫2.0功能,但忘記將其安裝在泊塢窗圖像中。

添加以下到我的搬運工文件解決了這個問題:

# Install Url Rewrite 
ADD https://download.microsoft.com/download/C/9/E/C9E8180D-4E51-40A6-A9BF-776990D8BCA9/rewrite_amd64.msi /install/rewrite_amd64.msi 
RUN msiexec.exe /i c:\install\rewrite_amd64.msi /passive 
0

看來iis沒有對目錄的訪問權限。嘗試複製wwwroot目錄權限並將其分配給新站點。

RUN Set-Acl -Path c:\barometer -AclObject (Get-Acl -Path "C:\inetpub\wwwroot"); 
+0

添加的 「RUN設置的ACL -Path C:\晴雨表-AclObject(獲取的ACL -Path」 C:\的Inetpub \ wwwroot文件「);」到碼頭文件沒有改變。 正如原來的文章所述:「我的其他(更基本)項目工作正常,與類似的碼頭建設安裝。」,爲什麼我認爲該文件夾的所有權限必須正確。 – antontj