【发布时间】:2019-09-14 17:12:09
【问题描述】:
在 dockerizing 遗留应用程序方面需要帮助 我有一个包含多个组件(msi 安装程序)的旧版应用程序。这些组件使用各种技术,如 C#、Windows 窗体、C++、MFC、.net 远程处理、C# webservices(asmx)。在这些组件中,有几个是桌面 ui 应用程序。 我正在研究 dockerizing 这些组件的可行性。我知道从 docker 容器中显示 UI 是不可能的,但是 UI 组件也有一个命令行对应项,我们可以使用它来执行所有可以使用 UI 完成的操作。 我从一个简单的组件开始。这包含用 C# 开发的 asmx Web 服务,通常托管在 Windows 机器上的 IIS 上。 它将其文件安装到以下位置
- C:\program Files\ ==> 可配置
- C:\programData\
我使用以下操作创建了 docker 文件
- 获取 windows server core 镜像并启用 iis 和其他
依赖关系
- 将安装程序从主机复制到容器
- 使用 msiexec 命令以静默模式运行安装程序。
当我使用此 docker 文件运行 docker build 命令时,我收到错误无法访问网络位置“C:\Program Files\\
谷歌没有帮助。 任何人都可以帮助我解决这个问题。 我有一些问题 1. docker 容器是否默认包含程序文件、程序文件(x86)、用户配置文件、程序数据和应用程序数据等默认 windows 目录?
编辑: 对延迟响应表示歉意。 在下面提供 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 安装程序未正确安装。联系您的支持 人员寻求帮助。
我尝试注销和注册 msi 安装程序服务,但没有帮助。因此评论了这些行。 非常感谢任何帮助。
【问题讨论】:
-
A
windowsservercore图像已经有 Program Files、Program Files(x86) 和其他目录。您可以通过在直接从windowsservercore创建的容器上运行dir命令来找到更多信息:docker run -it microsoft/windowsservercore:latest
标签: .net docker windows-installer docker-build