GithubHelp home page GithubHelp logo

nanxstats / liftr Goto Github PK

View Code? Open in Web Editor NEW
170.0 14.0 20.0 5.08 MB

🐳 Containerize R Markdown documents for continuous reproducibility

Home Page: https://nanx.me/liftr/

License: GNU General Public License v3.0

R 88.00% CSS 11.31% TeX 0.69%
docker reproducible-research rmarkdown containerization dynamic-documents reproducible-science knitr liftr statistical-computing

liftr's Introduction

liftr

R-CMD-check CRAN Version Downloads from the RStudio CRAN mirror

liftr aims to solve the problem of persistent reproducible reporting. To achieve this goal, it extends the R Markdown metadata format, and uses Docker to containerize and render R Markdown documents.

Paper

To cite this work and the related software, please use

Nüst D, Eddelbuettel D, Bennett D et al. (2020). The Rockerverse: Packages and Applications for Containerisation with R. The R Journal 12 (1), 437-461.

Installation

Install liftr from CRAN:

install.packages("liftr")

Or try the development version on GitHub:

remotes::install_github("nanxstats/liftr")

Browse the vignettes or the demo video for a quick-start.

Workflow

Containerize R Markdown Documents with liftr

Events

Time Event Location
July 30, 2018 JSM 2018 (talk) Vancouver, Canada
July 27, 2017 BioC 2017 (poster for dockflow.org) Dana-Farber Cancer Institute, Boston, MA
May 20, 2017 The 10th China-R Conference (talk) Tsinghua University, Beijng, China
April 18, 2017 DockerCon 2017 (talk) Austin Convention Center, Austin, TX
December 3, 2015 CRI Bioinformatics Workshop (talk) The University of Chicago, Chicago, IL
July 21, 2015 BioC 2015 (workshop) Fred Hutchinson Cancer Research Center, Seattle, WA

Contribute

To contribute to this project, please take a look at the Contributing Guidelines first. Please note that the liftr project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

liftr is free and open source software, licensed under GPL-3.

liftr's People

Contributors

behrica avatar lubianat avatar nanxstats avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

liftr's Issues

check_docker

A function checks if Docker was discoverable by liftr.

Previous Bioconductor package versions

Hello,

It would appear as though liftr is having difficulty with previous versions of Bioconductor and Bioconductor packages. Running the following .Rmd:

`

title: "Untitled"
output: html_document
liftr:
maintainer: "Maintainer Name"
email: "[email protected]"
from: "bioconductor/release_core2:R3.4.0_Bioc3.5"
pandoc: false
texlive: false
bioc:
- topGO/2.28.0

library(topGO)

`

results in the following once the initial installation of bioconductor/release_core2:R3.4.0_Bioc3.5 completes:

Step 5/7 : RUN Rscript -e "source('http://bioconductor.org/biocLite.R');biocLite(c('topGO/2.28.0'))"
---> Running in 043d8fee39fe
�[91mBioconductor version 3.5 (BiocInstaller 1.26.0), ?biocLite for help
�[0m�[91mA newer version of Bioconductor is available for this version of R,
?BiocUpgrade for help
�[0m�[91mBioconductor version 3.5 (BiocInstaller 1.26.0), ?biocLite for help
�[0m�[91mA newer version of Bioconductor is available for this version of R,
?BiocUpgrade for help
�[0m�[91mtrying URL 'https://bioconductor.org/packages/3.5/bioc/src/contrib/BiocInstaller_1.26.1.tar.gz'
�[0m�[91mContent type 'application/x-gzip'�[0m�[91m length 18347 bytes (17 KB)
�[0m�[91m================�[0m�[91m====�[0m�[91m===============�[0m�[91m===�[0m�[91m============
downloaded 17 KB

�[0m�[91mBioconductor version 3.5 (BiocInstaller 1.26.0), ?biocLite for help
�[0m�[91mA newer version of Bioconductor is available for this version of R,
?BiocUpgrade for help
�[0m�[91m* installing source package ‘BiocInstaller’ ...
�[0m�[91m** R
�[0m�[91m** inst
�[0m�[91m** preparing package for lazy loading
�[0m�[91m** help
�[0m�[91m*** installing help indices
�[0m�[91m** building package indices
�[0m�[91m** testing if installed package can be loaded
�[0mBioconductor version 3.5 (BiocInstaller 1.26.1), ?biocLite for help
A newer version of Bioconductor is available for this version of R,
?BiocUpgrade for help
�[91m* DONE (BiocInstaller)
�[0m�[91m
The downloaded source packages are in
‘/tmp/RtmpDHoPBn/downloaded_packages’
�[0m�[91mBioconductor version 3.5 (BiocInstaller 1.26.1), ?biocLite for help
�[0m�[91mA newer version of Bioconductor is available for this version of R,
?BiocUpgrade for help
�[0m�[91m'BiocInstaller' updated to version 1.26.1
�[0m�[91mBioC_mirror: https://bioconductor.org
�[0m�[91mUsing Bioconductor 3.5 (BiocInstaller 1.26.1), R 3.4.0 (2017-04-21).
�[0m�[91mInstalling github package(s) ‘topGO/2.28.0’
�[0m�[91mDownloading GitHub repo topGO/2.28.0@master
from URL https://api.github.com/repos/topGO/2.28.0/zipball/master
�[0m�[91mInstallation failed: Not Found (404)

[0m�[91mOld packages: 'AnnotationDbi', 'AnnotationHub', 'backports', 'BH', 'Biobase',
'BiocGenerics', 'BiocParallel', 'BiocStyle', 'biomaRt', 'Biostrings',
'bookdown', 'BSgenome', 'checkmate', 'curl', 'data.table', 'DBI',
'DelayedArray', 'ensembldb', 'evaluate', 'foreign', 'Formula',
'GenomeInfoDb', 'GenomicAlignments', 'GenomicFeatures', 'GenomicRanges',
'gridExtra', 'GSEABase', 'htmlwidgets', 'httr', 'IRanges', 'jsonlite',
'lambda.r', 'lazyeval', 'Matrix', 'mgcv', 'openssl', 'OrganismDbi', 'R6',
'Rcpp', 'RSQLite', 'rtracklayer', 'S4Vectors', 'scales', 'ShortRead',
'stringi', 'SummarizedExperiment', 'tibble', 'VariantAnnotation', 'XML'
�[0m ---> e64f91a7d127
Removing intermediate container 043d8fee39fe
Step 6/7 : RUN mkdir /liftrroot/
---> Running in 9c95cb7d4eca
---> 1dcb9ac6c7b3
Removing intermediate container 9c95cb7d4eca
Step 7/7 : WORKDIR /liftrroot/
---> f22056789c44
Removing intermediate container 7028e5fd2dc5
Successfully built f22056789c44
Successfully tagged test:latest
$container_name
[1] "liftr_container_a71c6c41_81a1_47eb_a525_1aedad258a80"

$image_name
[1] "test"

$docker_build_cmd
[1] "docker build --no-cache=true --rm=true -t="test" /Users/jasonserviss/Desktop/test"

$docker_run_cmd
[1] "docker run --rm --name "liftr_container_a71c6c41_81a1_47eb_a525_1aedad258a80" -u id -u $USER -v "/Users/jasonserviss/Desktop/test:/liftrroot/" test Rscript -e "library('knitr');library('rmarkdown');library('shiny');setwd('/liftrroot/');render(input = 'test.Rmd')""Loading required package: methods
|.................................................................| 100%
label: unnamed-chunk-1

processing file: test.Rmd
Quitting from lines 15-16 (test.Rmd)
Error in library(topGO) : there is no package called 'topGO'
Calls: render ... withCallingHandlers -> withVisible -> eval -> eval -> library
Execution halted

The topGO version corresponds with the Bioconductor image version (can be seen here: https://bioconductor.org/packages/3.5/bioc/html/topGO.html) although it would appear that liftr is looking for the package version in an invalid place (i.e. https://api.github.com/repos/topGO/2.28.0/zipball/master).

I had originally thought that this is due to the relatively recent Bioconductor switch to Github (from SVN) and noticed that the earliest version of topGO on GitHub is 3.0... although both https://api.github.com/repos/topGO/3.0/zipball/master and https://api.github.com/repos/topGO/release-3.0/zipball/master are also invalid urls which probably indicates that liftr would fail with that version as well.

Replace RawGit

RawGit is shutting down next year, consider using jsDelivr or function calls within the package.

Using custom tex template example

Hi,

I liked your liftr package, but i needed some refining like custom templates.

As student, I often have to produce reports in french, and even if there is no mandatory template, I created mine.

So I integrated it to liftr, because I liked how it works. I think it can be a good example.

It can be seen there:

https://github.com/Bakaniko/liftr/tree/templates_usage

Features:

  • all file are in one docs folder, with template folder and image folder
  • all templates are loaded in /data/templates in the docker image
  • all images are loaded in /images/ in the docker image and listed in process (easier to debug)
  • several parameters are available:
    • mainfont: custom main font (Linux Libertine O installed with apt by default)
    • sansfont: custom sans font (Linux Biolinum O installed with apt by default)
    • maincolor: choose main color for section title and title page ribbon
    • secondcolor: for horizontal ribbon
    • fontsize: 11pt ( show Rmarkdown option usage)
    • lang: fr ( show Rmarkdown option usage)
    • tocname: custom toc name (in France, with have 2 names depending of TOC position in the document)
  • custom yml entries for title page:
    • title
    • subtitle
    • author
    • classname : project name
    • formation: diploma major
    • parcours: diploma minor
    • notesA
    • notesB

Cons / issues:

  • multiple author list don't work, needs to be on 1 line/string
  • cls file needs the texlive-lang-french deb package, even for english document
  • some configurations need to be done in etude.cls and etude.tex file (moving things in title page, custom LoF and LoT titles), tweaking is not easy (2 separated files, latex macros, tikz).
  • Makefile needs improvements (Rscript call to build the pdf), for now it just clean the working folder
  • needs xelatex (provided by the docker image to work)

Not tested:

  • include appendix or tex files
  • bibliography
  • other bookdown classes (epub, html, etc)

Shows some (R)markdown features:

  • sectionning
  • images
  • references
  • footnotes
  • python code execution

Custom colors

  • MSBlue (M$ blue)
  • MSLightBlue (lighter M$ blue)
  • DarkColor( similar to DarkGrey)
  • LightColor (similar to LightGrey)
  • LightGrey
  • DarkGrey
  • BaseColor (currently set to greenish color)
  • TextColor (black)
  • VertDepartementGeo (greenish color from my university department)
  • jaune (yellow)
  • bleu (blue)
  • bleuciel (skyblue)
  • rstudioblue

You can add your color in etude.tex file.

Anyway thanks for liftr, give me plenty reasons to procrastinate and an integrated Rmarkdown/latex writing workflow. I hope this will help people using and tweaking liftr.

Best,

Nicolas

New argument dry_run

Introduce a new argument dry_run (default is FALSE).
Preview the Docker commands but do not run them.

using liftr with base image rocker/hadleyverse fails

During the docker build I get this error message:

Step 3 : RUN rm -f /var/lib/dpkg/available   && rm -rf  /var/cache/apt/*   && apt-get update -qq   && apt-get install -t unstable -y --no-install-recommends     ca-certificates     libssl-dev     libcurl4-openssl-dev     libxml2-dev     libssh2-1-dev     git
 ---> Running in 33d1f5bdb8d8
Reading package lists...
Building dependency tree...
Reading state information...
ca-certificates is already the newest version (20160104).
git is already the newest version (1:2.9.3-1).
libxml2-dev is already the newest version (2.9.4+dfsg1-2).
libssl-dev is already the newest version (1.0.2j-1).
The following packages were automatically installed and are no longer required:
  libgmp-dev libgmpxx4ldbl libmhash2 libraptor2-0 librasqal3 librdf0
  libyajl-dev libyajl2
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  libgcrypt20 libgcrypt20-dev libgpg-error-dev
Suggested packages:
  libcurl4-doc libcurl3-dbg libidn11-dev libkrb5-dev libldap2-dev librtmp-dev
  rng-tools libgcrypt20-doc
The following packages will be REMOVED:
  libcurl4-gnutls-dev libraptor2-dev librasqal3-dev librdf0-dev
The following NEW packages will be installed:
  libcurl4-openssl-dev libgcrypt20-dev libgpg-error-dev libssh2-1-dev
The following packages will be upgraded:
  libgcrypt20
1 upgraded, 4 newly installed, 4 to remove and 132 not upgraded.
Need to get 1,778 kB of archives.
After this operation, 1,180 kB disk space will be freed.
Get:1 http://debian.mirror.lrz.de/debian testing/main amd64 libcurl4-openssl-dev amd64 7.50.1-1 [362 kB]
Get:2 http://debian.mirror.lrz.de/debian testing/main amd64 libgcrypt20 amd64 1.7.3-2 [489 kB]
Get:3 http://debian.noc.ntua.gr/debian testing/main amd64 libgpg-error-dev amd64 1.24-1 [81.7 kB]
Get:4 http://debian.mirror.lrz.de/debian testing/main amd64 libgcrypt20-dev amd64 1.7.3-2 [539 kB]
Get:5 http://debian.noc.ntua.gr/debian testing/main amd64 libssh2-1-dev amd64 1.7.0-1 [306 kB]
debconf: delaying package configuration, since apt-utils is not installed
dpkg: error: failed to open package info file '/var/lib/dpkg/available' for reading: No such file or directory
Fetched 1,778 kB in 2s (763 kB/s)
E: Sub-process dpkg --set-selections returned an error code (2)
E: Couldn't record the approved state changes as dpkg selection states

It does not like the removal of the 'available' file.
Without this it works.

Dangling container cleaner

From #25

One thing might be useful is an orphan cleaning option, because every time you compile a document (I did it a lot) it creates a new container and it can get quite big if you don't pay attention.
I solved it with a command line in the Makefile. So if there is a way to integrate an option to launch docker rmi $(docker images -f dangling=true -q), it will be nice.

Error: With R version 3.5 or greater, install Bioconductor packages using BiocManager

Hey,

BioConductor has updated its way of installing packages, which caused an incompatibility problem with current liftr version.

The command '/bin/sh -c Rscript -e "source('http://bioconductor.org/biocLite.R');biocLite(c('FCBF/1.2.2'))"' returned a non-zero code: 1"

The issue is at : https://github.com/nanxstats/liftr/blob/4271ec88c36c57049b2ce93461cff92c412146aa/inst/templates/pkg-bioc.Rmd

I will try to work on a solution and send a pr.

Best,
Tiago

liftr with LaTeX and .Rnw filetypes

Hello, I am working on creating a framework for reproducible research using knitr+LaTeX on .Rnw files (the ability to embed any programming language into a single source document is amazing), and was wondering if there is any implementation for that with liftr, or if I could create a pull request and start working on that.

install_docker

Simple install_docker function for guiding the installation of Docker.

running drender in RStudio does not show any error message from during 'docker build'

I just get a message in rstudio about 'the input device is not a TTY'

Removing intermediate container b970dc4754af
Successfully built 719f65c357fb
the input device is not a TTY
Error response from daemon: No such container: liftr_container_c2452cb0_af05_4540_84e3_1d794916ae40
Error response from daemon: No such container: liftr_container_c2452cb0_af05_4540_84e3_1d794916ae40
Untagged: 2016-10-13-food-consumption-tutorial:latest
Deleted: sha256:719f65c357fb7b95f1a9f96efaf54be223deca0ddeb503bfe4f44e5cd949d68c
Deleted: sha256:abec59b1a952cfbbbff3948226c36a34e19cb6f3f2b385e2f7e1723afca8d047
Deleted: sha256:8619cf17acd3d9a853baa8cb64411d3db48d94623e2456c1169b5946e8dc8ac5
Deleted: sha256:c6bb527ab7ea67bcf4ff9193b28751e69a68fcf440652e465dcd2f75064239f2
Deleted: sha256:a0ef05d4b8f3d460713785452b44a0533ebe5cb5e235be16c11b5e7aa7ce513f
Deleted: sha256:5ff9db48458dd83dfa4d3c5b2c7b86dcd49a734c2bdfb49c0397a245c9c0b695
Deleted: sha256:595523380493a5e987bba97cc77438935a0546c5d24cd84bc318474a20ee7e32
Deleted: sha256:22d1784df1a5d29a4976db682db6ca15353da5f9754653cdc59be7fd70eb559b
Deleted: sha256:2978b8fa064ea5ebeb87374c816a869461f65ad19c69d3e78c47a2c17761fd5b

this makes debugging problems very hard.
In a R session in a normal terminal it works, and the error mesage is visible, which was in my case a missing library:

processing file: 2016-10-13-food-consumption-tutorial.Rmd
  |.                                                                |   2%
   inline R code fragments

  |...                                                              |   4%
label: setup (with options) 
List of 1
 $ include: logi FALSE

  |....                                                             |   6%
  ordinary text without R code

  |......                                                           |   9%
label: unnamed-chunk-1
  |.......                                                          |  11%
  ordinary text without R code

  |........                                                         |  13%
label: unnamed-chunk-2
Quitting from lines 68-71 (2016-10-13-food-consumption-tutorial.Rmd) 
Error in library(sparklyr) : there is no package called 'sparklyr'


Running it in rstudio supresses basically the complete output of knitr.

only install pandoc if it is not already present

The Bioconductor Docker images are based on rocker/rstudio which means they already have pandoc installed. liftr tries to install pandoc on the container and this fails. The dockerfile should only attempt to install pandoc if it is not already installed. Thanks.

Running examples shows confusing error/warning

I was running liftr as shown in the examples, with the docker.Rmd file from the liftr package.

It seems that the building of the html file works, but then something goes wrong.
The docker.html is not available on the host and the intermidiate docker images are removed.

Last lines ofoutput

....
....
/usr/local/bin/pandoc +RTS -K512m -RTS docker.utf8.md --to html --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output docker.html --smart --email-obfuscation none --self-contained --standalone --section-divs --template /usr/local/lib/R/site-library/rmarkdown/rmd/h/default.html --variable 'theme:bootstrap' --include-in-header /tmp/RtmpUo53vl/rmarkdown-str16d631d9e.html --mathjax --variable 'mathjax-url:https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML' --no-highlight --variable highlightjs=/usr/local/lib/R/site-library/rmarkdown/rmd/h/highlight --variable navigationjs=/usr/local/lib/R/site-library/rmarkdown/rmd/h/navigation-1.1 

Output created: docker.html
Error response from daemon: No such container: liftr_container_88a25b21_c6d9_433e_b741_7dbd10b2214c
Error response from daemon: No such container: liftr_container_88a25b21_c6d9_433e_b741_7dbd10b2214c
Untagged: docker:latest
Deleted: sha256:dfcdcc48e0ff5f823b56a4a4f6886ca04bd930075a67de5d1df9a434b756a9ad
Deleted: sha256:94153a30a18df10ba22da6e07246b355b9b26a7905c3387ee9874a2cb43d9ad5
Deleted: sha256:769dbf9a87c5503133286a8eaed897b9d105d22e254db926dab79195454b8860
Deleted: sha256:13150522e313f9f4f58e49301889b8826fc2037b1febe5c308d601c456e14351
Deleted: sha256:bb1973b61906c451140255464df6be6aa818ec8fe05f4a079d9de0b4f6b4a4ba
Deleted: sha256:f5e38c9038711d44946b0023c11743a14d555dafd706fbe56e7ff1405c81c8cc
Deleted: sha256:9e158e7300d635a4b617a66e8937192a704195b7b92de15ee156502d1e0ce01a
Deleted: sha256:61a580cc33a9a3630c6f2c6fc0cf79497f54a4d36deaa7213258e77149a96204
Deleted: sha256:b6d56bbe41502fd1e4ad974891cb5f58de670ebe76f5f1275093c3ddd1c440db
Deleted: sha256:c37cabc3b43f7e0bf87023dfb2c4d484056252afb0b55254e6b656af347f2e3e
Deleted: sha256:a17b1f715a853b0e64b326020e072539651bc0d6b7e802f8940f97902cd4d130
Deleted: sha256:80dd53cd9bf80bc72e91f9a4012646ab337ca669109d99a285d58cf475d54035
                                            image_name 
                                              "docker" 
                                        container_name 
"liftr_container_88a25b21_c6d9_433e_b741_7dbd10b2214c" 

Release liftr 0.9.3

Prepare for release

  • Check current CRAN check results
  • Check licensing of included files
  • Review pkgdown reference index for, e.g., missing topics
  • Bump version
  • Update cran-comments.md (optional)
  • Update NEWS.md
  • Review pkgdown website
  • urlchecker::url_check()
  • Check with local machine
  • Check with GitHub Actions
  • Check with win-builder

Submit to CRAN

  • Draft GitHub release
  • Submit to CRAN via web form
  • Approve emails

Wait for CRAN

  • Accepted 🎉

Integration with packrat

Instead of manually entering in package version numbers, is it possible to use packrat? Maybe this can be accomplished with the include metadata?

Install pre-built R packages in Dockerfile

Compiling and installing source packages in Dockerfile takes considerable amount of time. Install pre-built R Packages will save a lot of time.

Possible approach:

  1. https://github.com/rocker-org/hadleyverse/blob/master/Dockerfile

Potential problems:

  1. Could this create reproducibility issues? e.g. package version mismatch. (Why not add an option to let the users choose to compile or to install binary? - by default, binary)
  2. How about pre-built Bioconductor packages?

docker_version()

Need a reliable way to return the version of current Docker installation.

add liftr_info()

liftrInfo() for replacing sessionInfo().

containing:

  • Dcoker image info
  • Rabix info
  • Rabix workflow graph

make --no-cache configurable

Currently the docker build command uses always '--no-cache'

This make the overall run time eventualy very slow, as on each run all R dependencies nned to be intalled.

I propose to make this configurable with a parametert to drender.

I'll send a PR.

Need to be able to replace arguments like `-u` using run_arg in `render_docker()`

Feature Request

When someone provides values to run_args it will remove any default args that render_docker() may have included.

Background

Docker is a wonderful thing 😂 I'm using Docker for Windows and it's probably the reason my docker containers don't contain the env var $USER. As such, render_docker() fails. I tried working around this by using the predefined user name root based on running whoami in containers.

Repro

library(liftr)
path = paste0("T://liftr-tidyverse/")
dir.create(path)
file.copy(system.file("examples/liftr-tidyverse.Rmd", package = "liftr"), path)
input = paste0(path, "liftr-tidyverse.Rmd")
lift(input)
render_docker(input,run_args = "-u 0")
$docker_run_cmd
[1] "docker run --rm -u 0 --name \"liftr_container_3b0c9c71_9285_4734_bfd0_9fae65750526\" -u `id -u $USER` -v \"T:/liftr-tidyverse:/liftrroot/\" liftr-tidyverse Rscript -e \"library('knitr');library('rmarkdown');library('shiny');setwd('/liftrroot/');render(input = 'liftr-tidyverse.Rmd')\""

Unfortunately, this gets added but so does the existing argument flag and values that you provide by default.

Create examples using different renderers in Rmd

Since the renderers are implicitly (not specified in the function calls) specified in the Rmd headers,
we need more Rmd examples showing how to control the rendering targets.
Such as BiocStyle::html_document and rmarkdown::md_document.

Use quotation when the path contain blank

When the path contains blank, the render_docker would fail. I suggested to add a test for blank in path. When the path contains blank, use extra quotation for the path of Dockerfile.

For example:

$docker_build_cmd
[1] "docker build --no-cache=false --rm=true  /Users/hehe/Box Sync/xcmsrocker/ISMMS"

This command would fail since the blank in the path would break the build and the right one should be

$docker_build_cmd
[1] "docker build --no-cache=false --rm=true  "/Users/hehe/Box Sync/xcmsrocker/ISMMS""

Also, I am curious about why you use \" \" for the tag and a default tag with lastest might be fine in most cases.

ps. I know blank in path is not cool and I have no idea why Box use such path...

Reproducibility affected by package versions

Reproducibility design problem raised by @tengfei .

To increase reproducibility, instead of just using the latest versions of (system and R) packages (since the packages are constantly being updated), we should make sure that users use certain versions of packages. But how? See below discussion.

Discussion on Best Practice of Full Reproducibility on Jul 20, 2015 in the balcony with lake view:

  • For full reproducibility, users need to make and push their own containers.
  • How to select base image. rocker/r-base only has LATEST images, which means this is not fully reproducible when users pull the r-base image later. Instead, BioC has daily snapshots. -- (Is it ok for users to select their own base image (like some images with the LATEST tag), because the snapshot we store in Docker hub is a somehow 'full' image with the LATEST image at that time point? If so, we can use rocker/r-base:LATEST) THIS NEEDS CONFIRMATION
  • The big process. liftr will pack up local packages and make image, push container to Docker hub, the pushed container ID (tag) will be returned by a liftr function. (We need to make functions for pushing containers to Docker hub or other registries. Probably need a Docker Hub API package). Then we write out a new Rmd, only containing the pushed from: imagename:version. This need a new design of the workflow of liftr (more functions).
  • The use of Docker VOLUME will affect reproducibility (obviously not able to build once, run anywhere). We need to change this, probably copying all the files in the liftr working directory to the container.
  • (extract the versions (or let the user specify) and write them to the Dockerfile?)

Error running Containerize addin in Rstudio

I'm getting the following error when I run containerize on a single file Shiny app:

Error in (header_pos[1L] + 1L):(header_pos[2L] - 1L): NA/NaN argument.

The app runs fine and has already gone live, so this appears to be a problem with lift.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.