Closed nuest closed 7 years ago
Could be useful to "save" the Dockerfile to a connection (allowing file, stream etc.), see discussion at https://github.com/hadley/xml2/pull/158
Workflow: Package a session
Further functionality: I. A package test creates a local R session and a dockerized R session and compares both sessionInfo objects (package names, package versions(?), R versions, locales(?), platform(??) ... others) II. (maybe later) containerit may perform test-builds and check if all necessary packages are correctly installed can be loaded
I tried to sketch up the general workflow I want to implement. Please comment on this @nuest
Regarding 3.
:
install.packages(..)
we can utilize littler
.
The way to install packages should depend on the used base image. If we use an rocker/r-ver
(or descendants verse
, tidyverse
etc.) base image, then use littler. If we use another base image (e.g. debian
, then stop with and error message that this base image is not supported.add_cran_mirror("mirror url")
(better names welcome) that creates the required RUN command.Regarding 4.
: That is not necessary at the moment, but is a nice idea - moved it to #37. The script that actually does something in the container must load the packages. For your testing, please add a simple R script that library
-loads the packages.
Regarding "Further I.": Do check package names and versions, check R version, check locale. Do not compare platform or other things as of now.
Regarding "Further II.": if you think of useful future tasks, please add an issue.
Create a small session (load few packages, including one from CRAN but not in base packages) and create a Dockerfile that is as close as possible to recreate that session.
Based on
sessionInfo()$running
we have a mapping from running string to base image. In our case all running strings map to rocker.Also check
devtools::session_info()
, could be useful to determine installation source.Open questions:
MAINTAINER
field?