在 Docker 容器中安裝 Windows 服務 (Install Windows service in Docker container)


問題描述

在 Docker 容器中安裝 Windows 服務 (Install Windows service in Docker container)

當我嘗試在 dockerfile 中將應用程序作為服務安裝時,我收到一條錯誤消息,表明 installutil.exe 在安裝服務時顯示用戶名對話框。最初我想在主機域上使用一個帳戶,但似乎 Docker for 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


參考解法

方法 1:

To use the new user I had to add ".\" to the username (for local machine):

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

(by SturmUndDrangSturmUndDrang)

參考文件

  1. Install Windows service in Docker container (CC BY‑SA 2.5/3.0/4.0)

#docker-desktop #windows-services #docker #docker-for-windows #dockerfile






相關問題

在 Docker 容器中安裝 Windows 服務 (Install Windows service in Docker container)

在不同的用戶下啟動 docker 容器 (Start the docker container under a different user)

如何在 Docker Desktop 上創建新的 Kubernetes 集群? (How to create a new Kubernetes cluster on Docker Desktop?)

連接期間的 Docker for Desktop 錯誤:發布連接嘗試失敗,因為連接方沒有正確 (Docker for Desktop error during connect: Post A connection attempt failed because the connected party did not properly)

Jenkins 昨天安裝成功並在 windows 10 的 docker 桌面上運行,但今天無法在 http://localhost:8080 啟動 jenkins (Jenkins installed successfully and run on docker desktop on windows 10 yesterday , but unable to start jenkins at http://localhost:8080 today)

運行“docker exec”時發布端口 (publish port when running 'docker exec')

無法連接到 docker-desktop kubernetes 中部署的 API?負載均衡器服務不工作 (Unable to connect to the API deployed in docker-desktop kubernetes?. Loadbalancer service not working)

我在哪裡可以看到失敗的 Docker Desktop Windows 安裝的日誌文件? (Where can I see log files for failed Docker Desktop Windows installation?)

如何從 docker-credential-osxkeychain 獲取價值 (How to get value from docker-credential-osxkeychain)

無法訪問 Kubernetes 集群外的 NodePort 服務 (Cannot access NodePort service outside Kubernetes cluster)

如何在 eclipse-che 環境中配置 docker 引擎 (How to configure docker engine inside eclipse-che environment)

如何在 Docker Desktop 中使用參數運行 docker 實例? (How to run a docker instance with params in Docker Desktop?)







留言討論