Skip to content

After creating a Plumber file with vetiver_write_plumber(), use vetiver_write_docker() to create a Dockerfile plus an renv.lock file for a pinned vetiver_model().

Usage

vetiver_write_docker(
  vetiver_model,
  plumber_file = "plumber.R",
  path = ".",
  rspm = TRUE,
  port = 8000
)

Arguments

vetiver_model

A deployable vetiver_model() object

plumber_file

A path for your Plumber file, created via vetiver_write_plumber(). Defaults to plumber.R in the working directory.

path

A path to write the Dockerfile and renv.lock lockfile, capturing the model's package dependencies. Defaults to the working directory.

rspm

A logical to use the RStudio Public Package Manager for renv::restore() in the Docker image. Defaults to TRUE.

port

The server port for listening: a number such as 8080 or an expression like 'as.numeric(Sys.getenv("PORT"))' when the port is injected as an environment variable.

Value

The content of the Dockerfile, invisibly.

Examples


library(pins)
tmp_plumber <- tempfile()
b <- board_temp(versioned = TRUE)
cars_lm <- lm(mpg ~ ., data = mtcars)
v <- vetiver_model(cars_lm, "cars_linear")
vetiver_pin_write(b, v)
#> Creating new version '20220525T201127Z-88e0b'
#> Writing to pin 'cars_linear'
vetiver_write_plumber(b, "cars_linear", file = tmp_plumber)

## default port
vetiver_write_docker(v, tmp_plumber, tempdir())
#> * Lockfile written to '/tmp/RtmplFcfKx/renv.lock'.
## port from env variable
vetiver_write_docker(v, tmp_plumber, tempdir(),
                     port = 'as.numeric(Sys.getenv("PORT"))')
#> * Lockfile written to '/tmp/RtmplFcfKx/renv.lock'.