У меня есть служба Windows, написанная на C#
, которая наследуется от ServiceBase
.
Я попытался установить службу в контейнере (а также запустить как консольное приложение), но он отключается через несколько секунд в режиме демона. Если я запускаю его интерактивно (-it
), то он продолжает работать. OnStop
вызывается, но я не могу определить, что вызывает его в режиме демона.
Я запустил ping, чтобы сохранить контейнер:
docker run -d --name myapptest myapp ping -t localhost
файл докера:
FROM microsoft/dotnet-framework
SHELL ["powershell.exe", "-Command", "$ErrorActionPreference = 'Stop';
$ProgressPreference = 'Continue'; $verbosePreference='Continue';"]
RUN net user /add appuser Password1234!
RUN net localgroup administrators appuser /add
RUN New-Item -Path "C:/app" -ItemType directory
WORKDIR /app
COPY ".\hostcode" "C:\app"
RUN "C:/Windows/Microsoft.NET/Framework64/v4.0.30319/InstallUtil.exe"
/username=.\appuser /password=Password1234! /LogToConsole=true /ShowCallStack myapp.exe
RUN SC.exe config MyApp start=auto
CMD POWERSHELL Write-Host Starting container... ; \
while ($true) { Start-Sleep -Seconds 3600 }