需要帮助进行Docker化旧版应用程序 我有一个包含多个组件(msi安装程序)的旧版应用程序。这些组件使用各种技术,例如C#,Windows窗体,C ++,MFC,.net远程处理,C#Web服务(asmx)。在这些组件中,有两个是桌面ui应用程序。 我正在研究将这些组件进行码头化的可行性。我知道无法显示来自docker容器的UI,但是UI组件还具有命令行对应项,通过它我们可以执行UI可以完成的所有操作。 我从一个简单的组件开始。它包含用C#开发的asmx Web服务,通常托管在Windows计算机上的IIS上。 它将文件安装到以下位置
我通过以下操作创建了docker文件
当我使用此docker文件运行docker build命令时,出现错误无法访问网络位置“ C:\ Program Files \\
没有Google的帮助。 谁能帮助我解决这个问题。 我有一些问题 1.默认情况下,Docker容器是否包含默认Windows目录,例如程序文件,程序文件(x86),用户配置文件,程序数据和应用程序数据?
编辑: 抱歉延误响应。 在下面提供docker文件
FROM microsoft/aspnet
WORKDIR C:\\Installers
COPY EKBCS.exe C:\\Installers\\myinstaller.exe
COPY EKBCS.properties C:\\Installers\\myinstaller.properties
#RUN msiexec /unreg
#RUN msiexec /regserver
#RUN ["net start", "msiserver"]
RUN ["myinstaller.exe", "/l*v myinstaller.log", "/qn PROPERTYFILE=myinstaller.properties"]
ENTRYPOINT ["powershell"]
以下是安装程序日志中的错误。
-错误1719。无法访问Windows Installer服务。如果您以安全模式运行Windows,或者 Windows Installer安装不正确。与您的支持人员联系 协助人员。
我尝试注销并注册msi安装程序服务,但这无济于事。因此评论了这些话。 任何帮助都非常感谢。
答案 0 :(得分:0)
2年前,我做过类似的工作,将我们组织中的一些C#代码进行了码头作业。 这是其中一个Dockerfile的片段,应该可以帮助您实现所要尝试的工作-
FROM microsoft/windowsservercore
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
#Copy installers
RUN (New-Object System.Net.WebClient).DownloadFile('https://download.microsoft.com/download/B/4/A/B4A8422F-C564-4393-80DA-6865A8C4B32D/MicrosoftAzureAuthoringTools-x64.msi', 'c:\tools\MicrosoftAzureAuthoringTools-x64.msi') ;\
(New-Object System.Net.WebClient).DownloadFile('https://download.microsoft.com/download/B/4/A/B4A8422F-C564-4393-80DA-6865A8C4B32D/MicrosoftAzureLibsForNet-x64.msi', 'c:\tools\MicrosoftAzureLibsForNet-x64.msi') ;\
Start-Process 'msiexec' -ArgumentList '/i c:\tools\MicrosoftAzureAuthoringTools-x64.msi /quiet /qn /norestart /log c:\tools\installAuth.log'; \
Start-Sleep -s 30 ;\
Start-Process 'msiexec' -ArgumentList '/i c:\tools\MicrosoftAzureLibsForNet-x64.msi /quiet /qn /norestart /log c:\tools\installLib.log';\
Start-Sleep -s 30 ;\
Remove-Item c:\tools\*.msi -force
我的示例从Internet下载文件,然后从将它们下载到的c:\tools
文件夹中安装文件,但是它应该也能正常工作,并且消除了对主机上现有文件的依赖。 br />
希望对您有所帮助。