Open gpetrounrt opened 3 years ago
Apparently, I can use the following lines in the Dockerfile
RUN [Environment]::SetEnvironmentVariable('LANDO_DOCKER_BIN', \"C:\Program Files\docker\docker.exe\", [EnvironmentVariableTarget]::Machine)
RUN [Environment]::SetEnvironmentVariable('LANDO_DOCKER_BIN_DIR', \"C:\Program Files\docker\", [EnvironmentVariableTarget]::Machine)
I now see the following more mysterious error:
read ENOTSUP message=read ENOTSUP, stack=Error: read ENOTSUP
at Pipe.onStreamRead (internal/stream_base_commons.js:209:20)
From previous event:
at Landerode.listContainers (C:\snapshot\cli\node_modules\dockerode\lib\docker.js:419:12)
at Landerode.list (C:\snapshot\cli\lib\docker.js)
at C:\snapshot\cli\lib\engine.js
at C:\snapshot\cli\lib\router.js
From previous event:
at Object.eventWrapper (C:\snapshot\cli\lib\router.js)
at Engine.engineCmd (C:\snapshot\cli\lib\engine.js)
at Engine.list (C:\snapshot\cli\lib\engine.js)
at AsyncEvents.<anonymous> (C:\snapshot\cli\plugins\lando-core\app.js)
at AsyncEvents.handle (C:\snapshot\cli\lib\events.js)
at C:\snapshot\cli\lib\events.js
at processImmediate (internal/timers.js:464:21)
From previous event:
at AsyncEvents.emit (C:\snapshot\cli\lib\events.js)
at C:\snapshot\cli\lib\app.js
From previous event:
at App.init (C:\snapshot\cli\lib\app.js)
at initAndReport (C:\snapshot\cli\lib\app.js)
at App.start (C:\snapshot\cli\lib\app.js)
at Object.run (C:\snapshot\cli\plugins\lando-core\tasks\start.js)
From previous event:
at C:\snapshot\cli\lib\cli.js
From previous event:
at Object.handler (C:\snapshot\cli\lib\cli.js)
at Object.runCommand (C:\snapshot\cli\node_modules\yargs\lib\command.js:238:44)
at Object.parseArgs [as _parseArgs] (C:\snapshot\cli\node_modules\yargs\yargs.js:1063:30)
at Function.get [as argv] (C:\snapshot\cli\node_modules\yargs\yargs.js:1004:21)
at Cli.init (C:\snapshot\cli\lib\cli.js)
at Cli.run (C:\snapshot\cli\lib\cli.js)
at Object.<anonymous> (C:\snapshot\cli\bin\lando.js)
at Module._compile (pkg/prelude/bootstrap.js:1751:22)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:14)
at Function.runMain (pkg/prelude/bootstrap.js:1804:12)
at internal/main/run_main_module.js:17:47, errno=-4049, code=ENOTSUP, syscall=read, __stackCleaned__=true
Perhaps there is another setting that I need to change?
I am currently trying to run lando inside a Windows Docker image on Windows OS. Specifically, I am using docker:20.10.8-windowsservercore-1809 from the official Docker in Docker website.
If I use the following Dockerfile, everything works when building by executing
docker build -f Dockerfile -t lando-test .
However, when I try to run the image by executing
docker run -i --name lando-test -v //./pipe/docker_engine://./pipe/docker_engine lando-test
I observe the following when executing commands inside the image:docker run hello-world
works just fine and gives the expected output.lando version
works just fine and gives the expected output.lando init
throws the following error:Lando could not detect an installation of Docker, which is a required dependency
Looking at the daemon code and env code in GitHub, I see that the path to Docker is somehow hardcoded and does not match the path from the official Docker in Docker image which is
C:\Program Files\docker\docker.exe
. I guess that there are similar hardcoded paths in other places.