首页 > 解决方案 > 子进程在通过 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"] 

标签: c++node.jsdocker

解决方案


推荐阅读