# Docker/Singularity Containers

####

####
Authors: Brian Schilder, Alan Murphy, Nathan Skene

####

####
Vignette updated: Jan-18-2024

# Installation

rworkflows is now available via ghcr.io as a containerised environment with Rstudio and all necessary dependencies pre-installed.

## Method 1: via Docker

First, install Docker if you have not already.

Create an image of the Docker container in command line:

    docker pull ghcr.io/neurogenomics/rworkflows

Once the image has been created, you can launch it with:

    docker run \
      -d \
      -e ROOT=true \
      -e PASSWORD="<your_password>" \
      -v ~/Desktop:/Desktop \
      -v /Volumes:/Volumes \
      -p 8900:8787 \
      ghcr.io/neurogenomics/rworkflows

### NOTES

- Make sure to replace `<your_password>` above with whatever you want your password to be.
- Change the paths supplied to the `-v` flags for your particular use case.
- The `-d` ensures the container will run in “detached” mode, which means it will persist even after you’ve closed your command line session.
- The username will be “rstudio” by default.
- Optionally, you can also install the Docker Desktop to easily manage your containers.

## Method 2: via Singularity

If you are using a system that does not allow Docker (as is the case for many institutional computing clusters), you can instead install Docker images via Singularity.

    singularity pull docker://ghcr.io/neurogenomics/rworkflows

For troubleshooting, see the Singularity documentation.

# Usage

Finally, launch the containerised Rstudio by entering the following URL in any web browser: http://localhost:8900/

Login using the credentials set during the Installation steps.

# Session Info

    utils::sessionInfo()

    ## R version 4.3.1 (2023-06-16)
    ## Platform: aarch64-apple-darwin20 (64-bit)
    ## Running under: macOS Sonoma 14.2.1
    ##
    ## Matrix products: default
    ## BLAS:   /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRblas.0.dylib
    ## LAPACK: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.11.0
    ##
    ## locale:
    ## [1] C/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
    ##
    ## time zone: Europe/London
    ## tzcode source: internal
    ##
    ## attached base packages:
    ## [1] stats     graphics  grDevices utils     datasets  methods   base
    ##
    ## other attached packages:
    ## [1] data.table_1.14.10 rworkflows_1.0.1
    ##
    ## loaded via a namespace (and not attached):
    ##  [1] gtable_0.3.4        jsonlite_1.8.8      renv_1.0.3
    ##  [4] dplyr_1.1.4         compiler_4.3.1      BiocManager_1.30.22
    ##  [7] tidyselect_1.2.0    jquerylib_0.1.4     rvcheck_0.2.1
    ## [10] scales_1.3.0        yaml_2.3.8          fastmap_1.1.1
    ## [13] here_1.0.1          ggplot2_3.4.4       R6_2.5.1
    ## [16] generics_0.1.3      knitr_1.45          yulab.utils_0.1.2
    ## [19] tibble_3.2.1        desc_1.4.3          dlstats_0.1.7
    ## [22] rprojroot_2.0.4     munsell_0.5.0       bslib_0.6.1
    ## [25] pillar_1.9.0        RColorBrewer_1.1-3  rlang_1.1.2
    ## [28] utf8_1.2.4          cachem_1.0.8        badger_0.2.3
    ## [31] xfun_0.41           fs_1.6.3            sass_0.4.8
    ## [34] memoise_2.0.1.9000  cli_3.6.2           magrittr_2.0.3
    ## [37] digest_0.6.33       grid_4.3.1          lifecycle_1.0.4
    ## [40] vctrs_0.6.5         evaluate_0.23       glue_1.6.2
    ## [43] fansi_1.0.6         colorspace_2.1-0    rmarkdown_2.25
    ## [46] tools_4.3.1         pkgconfig_2.0.3     htmltools_0.5.7