2

Windows 용 Docker에서 내 솔루션 중 하나를 실행할 때 문제가 있습니다. 다음과 같이 Windows 용 도커 - 내부 서버 오류

# 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 

모든 것이 잘 구축하지만, 사이트를 방문 할 때 나는 다음과 같은 오류가 발생합니다 : 나는 다음과 같은 dockerfile을 사용 "에 문제가와있다 찾고있는 리소스가 아니며 표시 할 수 없습니다. " 나는 동일한 구성을 사용하고있다하더라도, Visual Studio를 통해 디버깅 할 때 표시되는 고전 노란색 오류 페이지를 얻을 수없는 어떤 이유

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

.

도커가 어디서나 오류를 기록하는 것처럼 보이지 않으므로 문제를 디버깅하는 데 다소 방해가됩니다. 내 다른 (더 기본적인) 프로젝트는 비슷한 도커 빌드 설정으로 잘 작동합니다.

도커가 특정 web.config 요소에 문제가있는 곳을 읽었지만 주제에 대한 실제 설명서를 찾을 수 없습니다.

문제를 디버깅하는 데 도움을 줄 수 있습니까?

답변

2

마침내 문제가 발견되었습니다. URL 재 작성 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 (은 Get-ACL이 -Path"C : \을 Inetpub \ wwwroot에 ");" 도커 파일에 아무 것도 변경하지 않았습니다. 원래 게시물에 명시된 바와 같이 : "내 다른 (더 기본적인) 프로젝트는 비슷한 도커 빌드 설정으로 잘 작동합니다.", 왜 폴더에 대한 모든 권한이 올바른 것으로 가정합니다. – antontj