我已经基于Windows Server 1709为容器创建了图像。 在映像构建期间,我运行powershell脚本(在dockerfile中)
RUN powershell -NoProfile "& ""C:\...\Install.ps1"""
在此脚本中,我尝试使用参数
运行可执行文件& "$PSScriptRoot\example.exe" /install /q
问题在于参数未应用于可执行文件。 但是,如果我在容器内的powershell中手动运行此命令,那么它可以正常工作。 所以我试图以不同的方式做到这一点
Start-Process -FilePath "$PSScriptRoot\example.exe" -ArgumentList @("/install", "/q")
cmd /c "C:\...\example.exe" /install /q
cmd.exe /c "$PSScriptRoot\example.bat"
在PowerShell手动执行期间一切正常,脚本执行期间没有人。这个列表中没有包含许多不同的变体。
请注意!容器内部的进程总是在运行,但是当我们通过脚本执行时,它们不是由参数配置的。
PS C:\> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.16299.431
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.16299.431
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
答案 0 :(得分:-1)
尝试这种方式:
Start-Process -FilePath "$PSScriptRoot\example.exe" -ArgumentList "/install","/q"