【问题标题】:Building nanoserver image: task scheduler command fails but succeeds when run from the container command line构建 nanoserver 映像:任务调度程序命令失败,但从容器命令行运行时成功
【发布时间】:2022-12-15 19:14:03
【问题描述】:

我正在尝试构建一个 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 中失败但在容器命令行中有效?有没有人能解决这个问题?

提前谢谢你

【问题讨论】:

  • 嘿@vcattin,谢谢你!我正在努力在 nanoserver 上安排任务。您的问题有助于解决缺少的选项。

标签: docker dockerfile windows-task-scheduler nano-server


【解决方案1】:

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

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

在 dockerfile 的末尾执行 CMD ["test.bat"]。 这对我有用。

【讨论】:

    猜你喜欢
    • 2017-08-15
    • 1970-01-01
    • 2011-10-02
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    相关资源
    最近更新 更多