我正在尝试构建一个nanoserver映像,其中包括dockerfile中的任务调度:
FROM mcr.microsoft.com/windows/nanoserver:20H2
USER ContainerAdministrator
RUN schtasks /create /tn test /tr test /sc weekly /d MON /st 00:00 /ru system
ENTRYPOINT cmd
当我尝试构建映像时,得到了以下结果:
Sending build context to Docker daemon 2.048kB
Step 1/4 : FROM mcr.microsoft.com/windows/nanoserver:20H2
---> 32f64a4e8b69
Step 2/4 : USER ContainerAdministrator
---> Running in 63300b150890
Removing intermediate container 63300b150890
---> 347e5db0e75e
Step 3/4 : RUN schtasks /create /tn test /tr test /sc weekly /d MON /st 00:00 /ru system
---> Running in 0de9e3866ffb
ERROR: Class not registered
The command 'cmd /S /C schtasks /create /tn test /tr test /sc weekly /d MON /st 00:00 /ru system' returned a non-zero code: 1
但是,当我在使用相同的nanoserver映像的容器中运行相同的schtasks
命令时,它成功了。
有没有人知道为什么这个命令在dockerfile中失败,但在容器命令行中可以工作?有没有人有解决这个问题的方法?
先谢谢你了
1条答案
按热度按时间mec1mxoz1#
另一种解决方法是创建一个bat脚本,比如test.bat,并在其中放入below。
在dockerfile的末尾执行CMD [“test.bat”]。这对我很有效。