该问题与 Container 用户有关。默认情况下,使用当前用户创建计划任务。容器用户可能是计划任务命令无法解析为 XML 的特殊用户。
因此,您必须将用户/ru
(如果需要密码/rp
)传递schtasks
给 Windows 容器中的命令。
这有效
FROM microsoft/windowsservercore
RUN schtasks /create /tn "hellotest" /sc daily /tr "echo hello" /ru SYSTEM
它将在系统帐户下运行命令。
如果你是 Powershell 的粉丝(和我一样),你可以使用这个
FROM microsoft/windowsservercore
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
RUN $action = New-ScheduledTaskAction -Execute 'echo ""Hello World""'; \
$trigger = New-ScheduledTaskTrigger -Daily -At '1AM'; \
Register-ScheduledTask -TaskName 'Testman' -User 'SYSTEM' -Action $action -Trigger $trigger -Description 'Container Scheduled task test';