Docker
MIRACL’s GUI (miraclGUI) is not working
Access control might be enabled on your host machine. Change your xhost
access control on your host machine (not within your Docker
container). Exit the running Docker container and type:
xhost +
Log back in to your container. Reset xhost
after you are done with using
the MIRACL GUI using:
xhost -
The above will enable/disable access for all users. If this is not the desired behavior, access can be granted in a more fine grained manner.
Example:
xhost +SI:localsuer:<yourusername>
Note
Replace <yourusername>
with the actual user name of your host system
The GUI worked before but does not work anymore
Navigate to the directory that contains your docker-compose.yml
and
restart the container with docker compose down
followed by docker compose
up -d
. The GUI should work again.
I cannot run X or Y with Docker because of permission denied errors
If you have not set up a Docker user you might need to run
Docker commands with sudo
. While this should work, setting up a
Docker user is the prefered.
Processes that require TrackVis or Diffusion Toolkit are not working
Because of their respective licenses, we could not include TrackVis
or Diffusion Toolkit in our Docker image directly. Please
download and install them on you host machine using their installation guide.
After they have been successfully installed, mount a volume to your
MIRACL Docker container that contains the binary folder
for TrackVis and Diffusion Toolkit and add the binaries
to your $PATH
within your MIRACL Docker container
using the mounted volume.
STA workflow fails when trying to create tracts
Make sure that the TrackVis and Diffusion Toolkit binaries are available to MIRACL. See the previous question for details.
MIRACL’s GUI (miraclGUI) does not work anymore after my ssh connection has been broken
Assuming you logged back in with ssh and are in the container, exit the
container and restart it using docker compose down
and docker compose up
-d
.
Shell back into the container and the GUI should work again.
Note
Note that the Docker Compose syntax is different if
you installed it using the standalone method. Compose
standalone uses the -compose
syntax instead of the current standard
syntax compose
. The above command would thus be docker-compose up -d
when using Compose standalone.
I do not want to create the image using the provided script
You can build the image yourself, not using the script we provide. However, the build script makes sure that the GUI version of MIRACL works with Docker and it is therefore recommended to use it. Build the image with:
$ docker build -t mgoubran/miracl .
Note
Do not forget the .
at the end of the command. It is required to point
docker build
to the Dockerfile
.
To run the container use:
$ docker run -it mgoubran/miracl bash
Attention
If you make changes in the container that are not stored on a volume, make
sure to use the same container the next time you run MIRACL as
changes made to a container will only apply to this specific container. If you
run MIRACL again from the same image using docker run -it
mgoubran/miracl bash
, a new container will be created that does not contain
the changes you made to the first container.
Warning
The MIRACL GUI will be unlikely to work out-of-the-box but you can try the troubleshooting steps in the following section to make it work.
I get either or both of the following errors whenever I try to run the GUI from within a Docker container that was build without the provided build script
Authorization required, but no authorization protocol specified
qt.qpa.xcb: could not connect to display :1
Note
The number for the display could be different in your case
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb.
Exit your running Docker container and run the following to mount an X11 socket from the host system in a new Docker container:
docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix mgoubran/miracl bash
If you still receive the above error, you may have to change your xhost access control. See previous troubleshooting step above.