knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
Easy Dockerfile Creation from R.
You can install dockerfiler from GitHub with:
# install.packages("remotes") remotes::install_github("colinfay/dockerfiler")
Or from CRAN with :
install.packages("dockerfiler")
By default, Dockerfiles are created with FROM "rocker/r-base"
.
You can set another FROM in new()
library(dockerfiler) # Create a dockerfile template my_dock <- Dockerfile$new() my_dock$MAINTAINER("Colin FAY", "contact@colinfay.me")
Wrap your raw R Code inside the r()
function to turn it into a bash command with R -e
.
my_dock$RUN(r(install.packages("attempt", repo = "http://cran.irsn.fr/")))
Classical Docker stuffs:
my_dock$RUN("mkdir /usr/scripts") my_dock$RUN("cd /usr/scripts") my_dock$COPY("plumberfile.R", "/usr/scripts/plumber.R") my_dock$COPY("torun.R", "/usr/scripts/torun.R") my_dock$EXPOSE(8000) my_dock$CMD("Rscript /usr/scripts/torun.R ")
See your Dockerfile :
my_dock
If you've made a mistake in your script, you can switch lines with the switch_cmd
method. This function takes as arguments the positions of the two cmd you want to switch :
# Switch line 8 and 7 my_dock$switch_cmd(8, 7) my_dock
You can also remove a cmd with remove_cmd
:
my_dock$remove_cmd(8) my_dock
This also works with a vector:
my_dock$remove_cmd(5:7) my_dock
add_after
add a command after a given line.
my_dock$add_after( cmd = "RUN R -e 'remotes::install_cran(\"rlang\")'", after = 3 )
Save your Dockerfile:
my_dock$write()
You can use a DESCRIPTION file to create a Dockerfile that installs the dependencies and the package.
my_dock <- dock_from_desc("DESCRIPTION") my_dock$CMD(r(library(dockerfiler))) my_dock$add_after( cmd = "RUN R -e 'remotes::install_cran(\"rlang\")'", after = 3 )
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.