Build your own docker image based on tidymass

You can build your own docker image, which contains all your code, data and analysis environment, which is more efficient for reproducible analysis.

Create dockerfile

Create a dockerfile without extension. And then open and modify it.

FROM jaspershen/tidymass:latest
MAINTAINER "Xiaotao Shen"

RUN apt-get update && apt-get install -y curl

COPY demo_data/ /home/rstudio/demo_data/

RUN chmod 777 /home/rstudio/demo_data/

RUN R -e 'install.packages("remotes")'

RUN R -e "remotes::install_gitlab('jaspershen/tidymass')"

If you want to install packages (for example ggraph) which are necessary for you analysis, please add a new line:

RUN R -e 'install.packages("ggraph")'

And you also need to copy your data to the image use the COPY.

Build image

In the terminal, use below code to build the image.

docker build -t image-name -f Dockerfile .

Change the image-name.

Use the docker tag command to give the tidymass image a new name

We need to create a account on the docker hub ( and then use the next code to link the local image to our account.

docker tag image-name your-account/image-name:latest

Push image to docker hub

docker push your-account/image-name:latest

Then other people can download your image which contains your code, data and analysis environment, which make it is pretty easy to repeat your analysis and results.

How to pull docker image and run it can refer this document.

Session information

#> R version 4.3.0 (2023-04-21)
#> Platform: x86_64-apple-darwin20 (64-bit)
#> Running under: macOS Ventura 13.5.1
#> Matrix products: default
#> BLAS:   /Library/Frameworks/R.framework/Versions/4.3-x86_64/Resources/lib/libRblas.0.dylib 
#> LAPACK: /Library/Frameworks/R.framework/Versions/4.3-x86_64/Resources/lib/libRlapack.dylib;  LAPACK version 3.11.0
#> locale:
#> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
#> time zone: America/Los_Angeles
#> tzcode source: internal
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> loaded via a namespace (and not attached):
#>  [1] digest_0.6.31   R6_2.5.1        bookdown_0.34   fastmap_1.1.1  
#>  [5] xfun_0.39       blogdown_1.18.1 cachem_1.0.8    knitr_1.43     
#>  [9] htmltools_0.5.5 rmarkdown_2.22  cli_3.6.1       sass_0.4.6     
#> [13] jquerylib_0.1.4 compiler_4.3.0  rstudioapi_0.14 tools_4.3.0    
#> [17] evaluate_0.21   bslib_0.5.0     yaml_2.3.7      jsonlite_1.8.5 
#> [21] rlang_1.1.1