Microsoft는 Windows에서 도커 실행에 투자하고 있습니다. Docker를 통해 IIS에서 레거시 ASP 클래식 응용 프로그램을 실행할 수 있습니까? 방법?IIS에서 ASP 클래식 Dockerize
https://hub.docker.com/r/microsoft/iis/
Microsoft는 Windows에서 도커 실행에 투자하고 있습니다. Docker를 통해 IIS에서 레거시 ASP 클래식 응용 프로그램을 실행할 수 있습니까? 방법?IIS에서 ASP 클래식 Dockerize
https://hub.docker.com/r/microsoft/iis/
마침내이 모든 작업이 완료되었습니다. 단순한 Dockerfile을 실행하는 것보다 훨씬 복잡했습니다. 원래 Dockerfile은 2002 년에 개발 된 사이트 였으므로, 다운로드 및 설치해야하는 모듈, 잠금 해제해야하는 web.config 섹션 및 만들어야했다. 내 마지막 도커 파일은 다음과 같습니다. 다음 사람에게 도움이되기를 바랍니다.
# escape=`
FROM microsoft/iis
SHELL ["powershell", "-command"]
RUN Install-WindowsFeature Web-ASP; `
Install-WindowsFeature Web-CGI; `
Install-WindowsFeature Web-ISAPI-Ext; `
Install-WindowsFeature Web-ISAPI-Filter; `
Install-WindowsFeature Web-Includes; `
Install-WindowsFeature Web-HTTP-Errors; `
Install-WindowsFeature Web-Common-HTTP; `
Install-WindowsFeature Web-Performance; `
Install-WindowsFeature WAS; `
Import-module IISAdministration;
RUN md c:/msi;
RUN Invoke-WebRequest 'http://download.microsoft.com/download/C/9/E/C9E8180D-4E51-40A6-A9BF-776990D8BCA9/rewrite_amd64.msi' -OutFile c:/msi/urlrewrite2.msi; `
Start-Process 'c:/msi/urlrewrite2.msi' '/qn' -PassThru | Wait-Process;
RUN Invoke-WebRequest 'https://download.microsoft.com/download/1/E/7/1E7B1181-3974-4B29-9A47-CC857B271AA2/English/X64/msodbcsql.msi' -OutFile c:/msi/msodbcsql.msi;
RUN ["cmd", "/S", "/C", "c:\\windows\\syswow64\\msiexec", "/i", "c:\\msi\\msodbcsql.msi", "IACCEPTMSODBCSQLLICENSETERMS=YES", "ADDLOCAL=ALL", "/qn"];
EXPOSE 8000
RUN Remove-Website -Name 'Default Web Site'; `
md c:\mywebsite; `
New-IISSite -Name "mywebsite" `
-PhysicalPath 'c:\mywebsite' `
-BindingInformation "*:8000:";
RUN & c:\windows\system32\inetsrv\appcmd.exe `
unlock config `
/section:system.webServer/asp
RUN & c:\windows\system32\inetsrv\appcmd.exe `
unlock config `
/section:system.webServer/handlers
RUN & c:\windows\system32\inetsrv\appcmd.exe `
unlock config `
/section:system.webServer/modules
RUN Add-OdbcDsn -Name "mywebsite" `
-DriverName "\"ODBC Driver 13 For SQL Server\"" `
-DsnType "System" `
-SetPropertyValue @("\"Server=XXXX.us-east-2.rds.amazonaws.com\"", "\"Trusted_Connection=No\"");
ADD . c:\mywebsite
나는 시도하지 않은, 그러나 고전적인 ASP를 실행하는 데 문제가되지 않을 것이다. microsoft/iis
이미지는 전체 Server Core 설치 인 microsoft/windowsservercore
이미지를 기반으로하며 32 비트 지원도 포함됩니다. 당신의 Dockerfile은 다음과 같이 시작해야하므로
ASP 기능은 기본적으로 존재하지 않습니다 :
# escape=`
FROM microsoft/iis
SHELL ["powershell", "-command"]
RUN Install-WindowsFeature Web-ASP
합니다 (escape
및 SHELL
라인 그냥 쉽게 윈도우 friendy Dockerfiles을 구축 할 수 있도록 참조 Windows, Dockerfiles and the Backtick Backslash Backlash).
그러면 ASP 응용 프로그램 폴더에 COPY
이되며 나머지 IIS 설치 프로그램은 PowerShell 명령으로 실행됩니다. This question에는 좋은 포인터가 있고 this Dockerfile for an ASP.NET app에는 PowerShell을 사용하여 웹 사이트를 구성하는 방법이 나와 있습니다.
최고하려고하지만 새로운 문제 타격 싶어요 - windowsservercore 이미지 고정 표시기 허브 것은 손상된 것 같다 -이 기계와 두 네트워크에 시도했지만 성공적으로 다운로드하지 않습니다 :( –
' ➜ 고정 표시기는 마이크로 소프트 당겨/windowsservercore 사용하여 기본 태그 : 최신 최신 : 마이크로 소프트에서 당기기/windowsservercore 9c7f9c7d9bc2 : 9 초 다시 시도 de5064718b3f : 십초' 결국 "알 덩어리는" –
Windows를 실행 만 할 수 있기 때문에 그것의 추측에 다시 시도 컨테이너 Windows에서 :( –