Docker node-windows : cryptic error "error during CreateProcess: failure in a Windows system call" file not found

Viewed 2239

On windows server 2016, docker installed, and trying to run a docker image with nodejs.

docker run stefanscherer/node-windows "node -v"

throws an error with the following "message" :

docker: Error response from daemon: container 47c736ce10987311aee01695f735bcfda52222b9effe856c44fd492685249438 encountered an error during CreateProcess: failure in a Windows system call: Le fichier spécifié est introuvable. (0x2) extra info: {"CommandLine":"\"node -v\"","WorkingDirectory":"C:\","Environment":{"NPM_CONFIG_LOGLEVEL":"info"},"CreateStdInPipe":true,"CreateStdOutPipe":true,"CreateStdErrPipe":true,"ConsoleSize":[0,0]}.

Some testing

The weirdest thing is that some commands failed with this exact same error, some works. For instance :

docker run stefanscherer/node-windows "hostname" => ecbf0a7a7979

docker run stefanscherer/node-windows "dir" => same error has above (encountered an error during CreateProcess)

docker run stefanscherer/node-windows "pwd" =>

(result is an empty string it seems)

Some more testing

docker run -it stefanscherer/node-windows "cmd"

Microsoft Windows [Version 10.0.14393]                         
(c) 2016 Microsoft Corporation. All rights reserved.           

C:\>node -v                                                    
v10.9.0                                                        

C:\>npm -v                                                     
npm info it worked if it ends with ok                          
npm info using npm@6.2.0                                       
npm info using node@v10.9.0                                    
npm timing npm Completed in 353ms                              
npm info ok                                                    
6.2.0  

So I have an shell inside the docker node image ... and get the node version and all, without errors.

My versions

windows: `Server 2016 Standard Evaluation 1607 Build14393.rs1_release.161220-1747``

docker:

λ docker -v
Docker version 18.06.1-ce, build e68fc7a

λ docker version
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:21:34 2018
 OS/Arch:           windows/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.24)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:36:40 2018
  OS/Arch:          windows/amd64
  Experimental:     false
1 Answers

Just remove the quotes:

docker run stefanscherer/node-windows node -v

This should work. Windows tries to find an executable with name "node -v" otherwise.

Related