2016-10-18 13 views
8

पर डॉकराइज एएसपी क्लासिक विंडोज़ विंडोज़ पर डॉकर चलाने में निवेश कर रहा है। क्या आईओएस पर डॉकर के माध्यम से विरासत एएसपी क्लासिक एप्लिकेशन चलाने के लिए संभव है? कैसे?आईआईएस

https://hub.docker.com/r/microsoft/iis/

उत्तर

16

मुझे अंततः यह सब काम मिल गया। यह एक साधारण डॉकरफाइल चलाने से कहीं अधिक जटिल था, क्योंकि यह मूल रूप से 2002 में विकसित किया गया था। ऐसे मॉड्यूल थे जिन्हें डाउनलोड और स्थापित करना था, वेब.कॉन्फिग अनुभाग जिन्हें अनलॉक करने की आवश्यकता थी, और ओडीबीसी डेटा कनेक्शन बनाना था। मेरी अंतिम डॉकर फ़ाइल इस तरह दिख रही थी - उम्मीद है कि यह अगले व्यक्ति की मदद करेगा!

# 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 
2

मैंने कोशिश नहीं की है, लेकिन यह क्लासिक एएसपी को चलाने के लिए एक मुद्दा नहीं होना चाहिए। microsoft/iis छवि microsoft/windowsservercore छवि से आधारित है, जो एक पूर्ण सर्वर कोर स्थापित है, और इसमें 32-बिट समर्थन भी शामिल है।

एएसपी सुविधा डिफ़ॉल्ट रूप से वहाँ नहीं होगा, तो अपने Dockerfile इस तरह शुरू करने के लिए होगा:

# escape=` 
FROM microsoft/iis 
SHELL ["powershell", "-command"] 
RUN Install-WindowsFeature Web-ASP 

(escape और SHELL लाइनों सिर्फ यह आसान विंडोज friendy Dockerfiles निर्माण करने के लिए बनाने के लिए, को देखने के Windows, Dockerfiles and the Backtick Backslash Backlash)।

फिर आप अपने एएसपी ऐप फ़ोल्डर में COPY करेंगे, और अपने शेष आईआईएस सेटअप को PowerShell कमांड के साथ चलाएं। This question में कुछ अच्छे पॉइंटर्स हैं, और this Dockerfile for an ASP.NET app दिखाता है कि आप वेबसाइटों को कॉन्फ़िगर करने के लिए PowerShell का उपयोग कैसे कर सकते हैं।

+0

बहुत बढ़िया कोशिश करने के लिए, लेकिन एक नई समस्या से टकराने के प्यार होता - डोकर हब पर windowsservercore छवि दूषित हो रहा है - दो मशीन और दो नेटवर्क पर की कोशिश की लेकिन इसे सफलतापूर्वक डाउनलोड नहीं करता है :( –

+0

' ➜ डोकर माइक्रोसॉफ्ट खींच/windowsservercore का उपयोग डिफ़ॉल्ट टैग: नवीनतम नवीनतम: माइक्रोसॉफ्ट से खींच/windowsservercore 9c7f9c7d9bc2: 9 सेकंड में पुन: प्रयास किया de5064718b3f: 10 सेकंड ' और अंत में" अज्ञात ब्लॉब " –

+0

क्योंकि आप केवल खिड़कियों चला सकते हैं यह अनुमान में पुनः प्रयास किया कंटेनर विंडोज़ पर :( –