-
Notifications
You must be signed in to change notification settings - Fork 763
Description
Docker is all the rage amongst DevOps types and cloud service providers and seems to offer some concrete advantages for R users in managing dependencies, reproducibility and isolation of the computational environment (@cboettig has a nice paper on this: http://arxiv.org/pdf/1410.0846.pdf). And no doubt you've seen rocker-org by @eddelbuettel and @cboettig, which is a huge contribution to using R and RStudio with docker.
What do you think about these functions being part of devtools
:
add_dockerfile()
writes a basic dockerfile to build a docker image that includes the R package and all its dependencies, and maybe edits other files in the package if necessary (maybe.Rbuildignore
, cf. https://github.com/benmarwick/Steele_et_al_VR003_MSA_Pigments/blob/master/vignettes/Dockerfile and https://github.com/cboettig/nonparametric-bayes/blob/master/manuscripts/Dockerfile).add_circle()
writes a circle.yml file (analogous to travis.yml) for circleci's continuous integration service of the docker image that the dockerfile generates (cf. https://github.com/benmarwick/Steele_et_al_VR003_MSA_Pigments/blob/master/circle.yml this also pushes the image to the docker hub when the tests pass)build_docker()
builds the docker image from the dockerfile made byadd_dockerfile()
. This would require docker to be installed locally. Analogous to R package build tools indevtools
and RStudio.push_docker()
pushes the docker image to an online repository, the Docker Hub is the big one at the moment, but Google have just announced one also. This would require docker to be installed locally. Analogous to git push in RStudio.
This might be a bit of mission creep for devtools
and overlap with the goals of packrat
, but it would simplify the reproducible research workflow nicely (for Carl and I at least, not sure that Dirk is a devtools
user ;) No doubt there are others using R and Docker that would benefit also. Anyway, what do you reckon?