windows - 启动容器时,图像中的 Windows 服务无法自动启动
问题描述
请帮助我,我已经从 dotnet-framework-docker 作为基础图像构建了一个带有 Windows 服务的图像 Windows 服务器。我已将 (-StartupType Automatic) 设置为该服务,但是当容器在线时,该服务不会启动。这是 Dockerfile 中的命令
New-Service -Name $service_name -DisplayName $service_display_name -Description 'Domain Handlers' -BinaryPathName $service_path -StartupType Automatic
这是我从正在运行的容器中获得的该服务的状态。
ExitCode : 0
Name : Project-Dev
ProcessId : 0
StartMode : Auto
State : Stopped
Status : OK
我现在也有两个解决方案。首先,我想我可以制作一个脚本并将其设置为在 ENDTRYPOINT 或 CMD 中运行,该脚本将在容器在线时启动服务。其次,我看到服务是在本地系统权限下运行的,听说过LocalService和NetworkService,所以问题是我的服务是在本地服务下运行还是在网络服务下运行,那么它可以自动启动吗?(我想到了权限,可能因为权限而服务无法启动)所以,请帮助我摆脱这些东西
解决方案
我通过创建一个 onboot.service.ps1 脚本并将其设置在 Dockerfile 的 ENTRYPOINT 上解决了这个问题。
ENTRYPOINT ["powershell.exe", "C:\\Docker_onboot.services.ps1"]
该脚本中的内容是:
Start-Service -Name 'ServiceName'
我在 Amazone ECS 中运行容器。
希望这有帮助
推荐阅读
- javascript - 如何使用 webpack 为 cdn 构建?
- python - 已解决:为什么我的 Python speechRecognition.listen 没有停止录制
- javascript - 如何确定 HTML 元素是否普遍可见?(JavaScript)
- arduino-c++ - Arduino:在同一个命名类成员中调用 digitalWrite
- r - 利用 R Shiny 数据表中的背景颜色为单元格着色
- javascript - 如何以编程方式导航到 Next.js 中的其他页面?
- java - Java- Mapstruct:将特定字段从源映射到列表对象内的目标
- c# - Foreach 循环不像我想象的那样
- flutter - 如何获得订购的 StaggeredGridView
- spring - JPA 查询为日期类型字段上的等于条件返回空结果集