Установите службу Windows в контейнере Docker - PullRequest
0 голосов
/ 08 января 2019

Когда я пытаюсь установить приложение в качестве службы в моем dockerfile, я получаю сообщение об ошибке, которое указывает, что installutil.exe показывает диалоговое окно имени пользователя при установке службы. Сначала я хотел использовать учетную запись в домене хоста, но, похоже, Docker для Windows не поддерживает настройки сети хоста, доступные в linux.

Чтобы обойти это, я сначала создаю пользователя-администратора, а затем вызываю installutil с параметрами имени пользователя и пароля. Это дает ошибку

Имя учетной записи неверно или не существует, или пароль неверно для указанного имени учетной записи.

FROM microsoft/dotnet-framework
SHELL ["powershell.exe", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'Continue'; $verbosePreference='Continue';"]

RUN New-LocalUser -Name "testuser" -Password (ConvertTo-SecureString -AsPlainText "Stackoverflow1234!" -Force) -FullName "Test.User" -Description "LocalAdministrator"
RUN Add-LocalGroupMember -Group administrators -Member  adapteruser -Verbose

RUN New-Item -Path "C:/dev" -ItemType directory

WORKDIR /dev

COPY ".\dev" "C:\dev"

RUN "C:/Windows/Microsoft.NET/Framework64/v4.0.30319/InstallUtil.exe" /username=testuser /password=Stackoverflow1234! /LogToConsole=true /ShowCallStack myapp.exe

Я также пробовал:

RUN net user /add testuser Stackoverflow1234!
RUN net localgroup administrators testuser /add
RUN net user

Я уже рассмотрел этот похожий вопрос: Докеризация Windows Service Docker для Windows

1 Ответ

0 голосов
/ 08 января 2019

Чтобы использовать нового пользователя, мне пришлось добавить «. \» К имени пользователя (для локальной машины):

RUN "C:/Windows/Microsoft.NET/Framework64/v4.0.30319/InstallUtil.exe" /username=.\testuser /password=Stackoverflow1234! /LogToConsole=true /ShowCallStack myapp.exe
...