--- title: Docker/Singularity Containers author: '

Authors: `r auths <- eval(parse(text = gsub("person","c",read.dcf("../DESCRIPTION", fields = "Authors@R"))));paste(auths[names(auths)=="given"],auths[names(auths)=="family"], collapse = ", ")`

' date: '

Vignette updated: `r format( Sys.Date(), "%b-%d-%Y")`

' output: rmarkdown::html_vignette: md_extensions: -autolink_bare_uris params: cont: value: ghcr.io/neurogenomics/rworkflows docker_registry: value: ghcr.io docker_org: value: neurogenomics vignette: | %\VignetteIndexEntry{docker} %\usepackage[utf8]{inputenc} %\VignetteEngine{knitr::rmarkdown} --- ```{r setup, include=FALSE} #### Package name #### PKG <- read.dcf("../DESCRIPTION", fields = "Package")[1] library(PKG, character.only = TRUE) ## Docker containers must be lowercase pkg <- tolower(PKG) #### Username of DockerHub account #### docker_org <- params$docker_org docker_registry <- params$docker_registry cont <- params$cont docker_url <- if(grepl("ghcr.io",docker_registry)){ paste("https://ghcr.io",cont,sep="/") } else { paste("https://hub.docker.com/repository/docker",docker_org,pkg,sep="/") } ``` # Installation `r PKG` is now available via [`r docker_registry`](`r docker_url`) as a containerised environment with Rstudio and all necessary dependencies pre-installed. ## Method 1: via Docker First, [install Docker](https://docs.docker.com/get-docker/) if you have not already. Create an image of the [Docker](https://www.docker.com/) container in command line: ``` docker pull `r cont` ``` Once the image has been created, you can launch it with: ``` docker run \ -d \ -e ROOT=true \ -e PASSWORD="" \ -v ~/Desktop:/Desktop \ -v /Volumes:/Volumes \ -p 8900:8787 \ `r cont` ``` ### NOTES * Make sure to replace `` 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](https://www.docker.com/products/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](https://docs.sylabs.io/guides/2.6/user-guide/singularity_and_docker.html). ``` singularity pull docker://`r cont` ``` For troubleshooting, see the [Singularity documentation](https://docs.sylabs.io/guides/latest/user-guide/singularity_and_docker.html#github-container-registry). # 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
```{r Session Info} utils::sessionInfo() ```