docker 正在构建纳米服务器映像:任务计划程序命令失败,但从容器命令行运行时成功

j8ag8udp  于 2022-12-18  发布在  Docker
关注(0)|答案(1)|浏览(83)

我正在尝试构建一个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中失败,但在容器命令行中可以工作?有没有人有解决这个问题的方法?
先谢谢你了

mec1mxoz

mec1mxoz1#

另一种解决方法是创建一个bat脚本,比如test.bat,并在其中放入below。

schtasks /create /tn test /tr test /sc weekly /d MON /st 00:00 /ru system

在dockerfile的末尾执行CMD [“test.bat”]。这对我很有效。

相关问题