Ich versuche, einen Dienst in einem Andock-Container auf Windows Server2016 zu installieren.Windows Server 2016 Dockerfile-Installationsdienst
Platzieren Sie einfach den Service dort und Powershelling:
New-Service -Name Bob -StartupType Automatic -BinaryPathName .\SVCHost.exe
Fügt den Dienst jedoch in dem Behälter erhalte ich das Ergebnis:
PS C:\Program Files\COMPANY\Repository> start-service -Name bob
start-service : Service 'bob (Bob)' cannot be started due to the following error: Cannot start service Bob on computer '.'.
At line:1 char:1
+ start-service -Name bob
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service], ServiceCommandException
Ich habe versucht, einen Benutzer zu erstellen und die Startbenutzerdaten einstellen aber dasselbe Problem.
Blick auf https://github.com/Microsoft/sql-server-samples/blob/master/samples/manage/windows-containers/mssql-server-2016-express-windows/dockerfile zeigt, dass sie sqlexpress verwenden, um die Installation des Dienstes zu tun.
Lange Rede kurzer Sinn ... Wie melde ich einen Dienst in einem Container Docker Windows-Server 2016
Versuchen Sie einen vollständig qualifizierten Pfad in '-BinaryPathName'. Außerdem verwenden die MS-Images Windows-Dienste, da sie traditionell in Windows ausgeführt werden. In Docker ist es vorzuziehen, die exe im Vordergrund auszuführen und Docker den Container in den Hintergrund zu stellen, indem Sie mit "-d" ausführen. –
Sie waren richtig, es war der voll qualifizierte Name ... auch bin ich bewusst von -d, aber aufgrund der Komplexität der Legacy zu Docker bringen versucht den "einfachen Weg" – maxfridbe