Skip to content
This repository was archived by the owner on Feb 22, 2020. It is now read-only.

Microsoft Windows Problems and Workarounds

Cole Brokamp edited this page Mar 14, 2019 · 4 revisions

Compared to running DeGAUSS on a macOS or linux system, there are a few known issues and workarounds for using DeGAUSS on Microsoft Windows:

Specifying the $PWD when binding a volume

Problem

Calling DeGAUSS results in an error along the lines of:

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: invalid reference format.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.

Solution

The point of the -v argument is to bind the current directory to the “/tmp” directory inside of the container so that the code inside can find the input files and write the output file back to the current working directory on the host platform.

The Windows powershell does not use the $PWD environment variable and so instead of using that to specify the bind point (-v $PWD:/tmp) you will have to use the full path specification, for example: -v C:/Temp/docker_testing:/tmp

Docker Containers for Windows

Problem

Within Windows terminal, trying to pull or run a Docker container results in an error: docker image operating system "linux" cannot be used on this platform

Solution

By default, Docker for Windows is setup to run Windows Containers and is not compatible with Linux Containers. To change this setting, right click on the Docker logo in the toolbar menu and choose Switch to Linux Containers...

Other problems exist with the newer version of Docker for Windows, namely that specifying a host path using the $PWD environment variable no longer works and host paths need to be specified using the full path name with / instead of \ separating the directories.

Parallel Computing on Windows

Problem

When running a DeGAUSS container on Windows it results in an error:

Error in fifo(tempfile(), open = "w+b", blocking = T) :
  cannot open the connection
Execution halted

Solution

This error occurs because some Windows platforms cannot support the R code used for parallel computing. Although this option is enabled by default and cannot be changed by the user, a workaround is to set the Docker host to use only 1 CPU. This can be done in the Docker settings panel and will force the container to use only a single thread.

Clone this wiki locally