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

Microsoft Windows Problems and Workarounds

Cole Brokamp edited this page Jan 9, 2020 · 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'.

or DeGAUSS complains that it cannot find the my_address.csv file within the working directory of /tmp

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 Command Line (cmd) does not support the $PWD environment variable and so instead of using that to specify the bind point (-v $PWD:/tmp) you will have to use a Command Line variable, %cd, for example: -v %cd%:/tmp.

Alternatively, you can specify the full path to the folder, substituting / for \. 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...

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.

No Windows 10

Problem

The only computers available to use DeGAUSS are Windows machines that do not have Windows 10 on them. Docker CE only supports Windows machines with Windows 10 or greater.

Solution

Install Docker Toolbox, which is a legacy supported solution to using Docker on systems that don't support Hyper-V: https://docs.docker.com/toolbox/toolbox_install_windows/

After installation, double-click the Docker Quickstart icon on the Desktop to launch a pre-configured Docker toolbox terminal and proceed as usual.