diff --git a/README.md b/README.md index aa7f2376a86470564132bac8ae343ba29303104d..740c03845ff7036627e7292716a60fed137070d6 100644 --- a/README.md +++ b/README.md @@ -54,10 +54,38 @@ BiocManager::install('DESeq2', update = FALSE) We have developed [Docker images](https://hub.docker.com/r/ruanad/htrfit/tags) to simplify the package's utilization. ``` -docker pull ruanad/htrfit:v2.0.0-beta +do cker pull ruanad/htrfit:v2.0.0-beta docker run -it --rm ruanad/htrfit:v2.0.0-beta ``` +HTRfit allows building graphs to visualize results. Inside Docker, displaying a window from the R terminal can be tricky and requires specific settings before running the container. Following commands worked for us: + +``` +# Prepare target env +CONTAINER_DISPLAY="0" +CONTAINER_HOSTNAME="htrfit_user" +# Create a directory for the socket +mkdir -p display/socket +touch display/Xauthority +# Get the DISPLAY slot +DISPLAY_NUMBER=$(echo $DISPLAY | cut -d. -f1 | cut -d: -f2) +# Extract current authentication cookie +AUTH_COOKIE=$(xauth list | grep "^$(hostname)/unix:${DISPLAY_NUMBER} " | awk '{print $3}') +# Create the new X Authority file +xauth -f display/Xauthority add ${CONTAINER_HOSTNAME}/unix:${CONTAINER_DISPLAY} MIT-MAGIC-COOKIE-1 ${AUTH_COOKIE} +# Proxy with the :0 DISPLAY +socat UNIX-LISTEN:display/socket/X${CONTAINER_DISPLAY},fork TCP4:localhost:60${DISPLAY_NUMBER} & +# Launch the container +docker run -it --rm \ + -e DISPLAY=:${CONTAINER_DISPLAY} \ + -e XAUTHORITY=/tmp/.Xauthority \ + -v ${PWD}/display/socket:/tmp/.X11-unix \ + -v ${PWD}/display/Xauthority:/tmp/.Xauthority \ + --hostname ${CONTAINER_HOSTNAME} \ + ruanad/htrfit:v2.0.0-beta +## inspired by : https://blog.yadutaf.fr/2017/09/10/running-a-graphical-app-in-a-docker-container-on-a-remote-server/ +``` + ## Biosphere virtual machine