Windows服务在Docker容器中启动后立即关闭

时间:2019-01-11 15:11:45

标签: c# docker windows-services docker-for-windows docker-desktop

我有一个用let idData = table.column(0).data(); let idx = idData.indexOf(item.id); if (idx >= 0) { stocksTable.row(idx).data([item.id, item.name, item.desc, item.quantity])).draw(false); } 编写的Windows服务,该服务继承自C#。 我尝试将服务安装在容器中(并且也作为控制台应用程序运行),但是在守护程序模式下几秒钟后它将关闭。如果我间歇性地运行它(ServiceBase),那么它将保持运行状态。 -it被调用,但是我无法确定在守护程序模式下正在调用什么。

我已经使用ping来使容器保持活动状态:

OnStop

docker文件:

docker run -d --name myapptest myapp ping -t localhost

1 个答案:

答案 0 :(得分:0)

我认为您可能对RUNCMDENTRYPOINT有误解。
This article很好地解释了,因此请检查一下。

尝试更改docker文件:

来自

RUN SC.exe config MyApp start=auto

CMD POWERSHELL Write-Host Starting container... ; \
while ($true) { Start-Sleep -Seconds 3600 }

ENTRYPOINT POWERSHELL Write-Host Starting container... && \
           SC.exe config MyApp start=auto

我猜你是在无限循环的情况下保持容器存活,但实际上并不需要,所以我把它拿出来了。