作者:倾其h所有只为爱你 | 来源:互联网 | 2023-02-12 17:45
我正在尝试构建一个包含自定义计划任务的容器.这是我的dockerfile:
FROM microsoft/windowsservercore
RUN schtasks /create /tn hello /sc daily /st 00:00 /tr "echo hello"
我收到以下错误:
错误:任务XML包含格式不正确或超出范围的值.(43,4):任务:
当连接到正在运行的默认Windows核心容器并运行命令时,我也得到相同的错误.
不用说,该命令在标准的Windows 2016服务器上运行良好.
这似乎是Windows容器中的一个错误,但我没有发现任何已知问题.
欣赏任何可能有助于弄清楚的线索.
1> Rubanov..:
该问题与容器用户有关。默认情况下,将与当前用户一起创建计划任务。容器用户可能是“计划任务”命令无法解析为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';