在Windows Container和Windows Server 2016中安装服务的区别



我有一个服务应用程序,将正确安装在Windows Server 2016标准使用以下命令:

PS C:Service> c:\mysvc\mysvc.exe -install
Service installed successfully

如果我在Dockerfile中使用

运行相同的事情:
RUN c:\mysvc\mysvc.exe -install

得到以下输出:

命令'cmd/S/C C:svcmysvc.exe -install'返回a非零代码:3221225781

我不确定为什么它的行为不同,或者我可以在哪里检查得到一些更好的想法,作为错误的原因。

调试这类问题的一个有用的技巧是在交互式容器中运行基本映像,按照Dockerfile的步骤操作,看看是否得到一些更有用的输出。

在你的例子中,像这样:

docker run -it --name temp microsoft/windowsservercore cmd

然后在Windows主机上的另一个命令:

docker cp mysvc.exe temp:c:/mysvc.exe

在交互式容器中运行c:mysvc -install

如果输出没有帮助,你可以在这里添加更多的细节到你的问题- Dockerfile和一些关于Windows服务的信息。