5

我正在尝试构建一个包含自定义计划任务的容器。这是我的码头文件:

FROM microsoft/windowsservercore
RUN schtasks /create /tn hello /sc daily /st 00:00 /tr "echo hello"

我收到以下错误:

错误:任务 XML 包含格式不正确或超出范围的值。(43,4):任务:

附加到正在运行的默认 Windows 核心容器并运行命令时,我也会遇到相同的错误。

不用说,该命令在标准 Windows 2016 服务器上运行良好。

这似乎是 Windows 容器中的一个错误,但我没有发现任何关于它的已知问题。

欣赏任何可能有助于弄清楚的线索。

4

1 回答 1

8

该问题与 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';
于 2017-10-09T09:00:49.777 回答