c++ - 子进程在通过 nodejs 生成的基于 Windows 的 docker 容器内意外退出
问题描述
我正在尝试通过以下方式使用 nodeJs 生成一个新进程。
public async executeProcess() {
this._childProcess = childProcess.spawn ("C:\\app\\SampleApp.exe");
}
后来我使用以下 docker 文件构建了一个基于 mcr.microsoft.com/windows/servercore:ltsc2016 的 docker 容器
ARG core=mcr.microsoft.com/windows/servercore:ltsc2016
ARG target=mcr.microsoft.com/windows/servercore:ltsc2016
FROM $core as download
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';
$ProgressPreference = 'SilentlyContinue';"]
ENV NODE_VERSION 10.16.0
RUN Invoke-WebRequest $('https://nodejs.org/dist/v{0}/node-v{0}-win-x64.zip' -f $env:NODE_VERSION) -OutFile 'node.zip' -UseBasicParsing ; \
Expand-Archive node.zip -DestinationPath C:\ ; \
Rename-Item -Path $('C:\node-v{0}-win-x64' -f $env:NODE_VERSION) -NewName 'C:\nodejs'
FROM $target
ENV NPM_CONFIG_LOGLEVEL info
COPY --from=download /nodejs /Bridge
ARG VS_OUT_DIR=.
WORKDIR /
ADD ${VS_OUT_DIR} ./app
WORKDIR /app
SHELL [ "powershell", "-Command"]
RUN Get-ChildItem -Path C:/Bridge -Recurse -Force
RUN Get-ChildItem Env:
SHELL ["cmd", "/C"]
ENTRYPOINT ["c:/nodejs/node.exe", "./lib/app.js"]
解决方案
推荐阅读
- java - Java Embedded,插入后我无法重新检查该行是否存在
- video-streaming - 如何将 Ant Media Server 端口/协议与 VLC 或 FFplay 连接?
- node.js - 使用密钥 rsa nodejs 生成 pem pkcs8
- visual-studio - 无法将 ADO.NET 实体数据模型添加到 .NET Core 2.1 项目
- android - 加载大图像以适应 ImageView
- kubernetes - Openstack Heat 和 Kubernetes 部署集成
- javascript - 显示平铺显示失败的替代图像/平铺(D3 Geo Tiles)
- arrays - 下载远程图像后延迟数据源方法
- java - Spring @Scheduled 执行作业的次数超过预期次数
- python-3.x - 如何在python中维护TransformDict中的键