在Windows Docker容器(NSIS)中进行静默安装



对于我们公司的一个项目,我们希望创建一个Windows容器来在云中运行第三方应用程序。我们使用这个repo中的docker图像作为基础。第三方应用程序的安装程序使用NSIS并支持静默安装。在本地,我可以使用在powershell中成功运行安装

Start-Process -FilePath <installer path> -ArgumentList '/S' -NoNewWindow -Wait -PassThru -RedirectStandardOutput output.txt -RedirectStandardError error.txt

我得到了一个单独进程的进程ID报告,shell会阻塞,直到安装完成。stdout/stderr文件为空。当我在docker中运行相同的命令时,我会再次获得单独进程的进程ID(所有其他stats列都为null,表示没有使用任何资源(。外壳立即解锁。同样,stdout和stderr文件是空的。

有没有更好的方法来调试"启动进程"命令?有其他提示可以了解更多关于这里出了什么问题的信息吗?

编辑

我验证了这与特定的第三方应用程序或基本映像无关。当使用以下安装FileZilla的Dockerfile时,也会发生同样的情况。我的主机是Windows服务器2019(1809(。

FROM mcr.microsoft.com/windows/servercore:ltsc2019
RUN powershell.exe -Command 
$ErrorActionPreference = 'Stop'; 
wget https://download.filezilla-project.org/client/FileZilla_3.48.0_win64_sponsored-setup.exe -OutFile C:filezilla_setup.exe
RUN powershell.exe -Command 
$ErrorActionPreference = 'Stop'; 
Start-Process -FilePath C:filezilla_setup.exe -ArgumentList '/S /NCRC' -NoNewWindow -Wait -PassThru
RUN powershell.exe -Command 
$ErrorActionPreference = 'Stop'; 
ls 'C:\Program Files\'
RUN powershell.exe -Command 
$ErrorActionPreference = 'Stop'; 
ls 'C:\Program Files (x86)\'

安装后在程序文件中找不到FileZilla。同样,在本地,在我的主机上运行相同的命令后,FileZilla出现在C:Program Files中。

对于任何有类似问题的人,都会在Microsoft网站上记录下来。它可以通过安装最新的安全更新并删除基本映像来解决,以便进行干净的Docker安装。

最新更新