Write a Dockerfile for a vetiver modelSource:
A path for your Plumber file, created via
vetiver_write_plumber(). Defaults to
plumber.Rin the working directory.
A path to write the Dockerfile and
lockfile, capturing the model's package dependencies. Defaults to the working directory.
Not currently used.
The generated lockfile in
path. Defaults to
The base Docker image to start with. Defaults to
rocker/r-verfor the version of R you are working with, but models like keras will require a different base image.
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.
EXPOSEto the Dockerfile? This is helpful for using Docker Desktop but does not work with an expression for
A character vector of additional package names to add to the Docker image. For example, some boards like
pins::board_s3()require additional software; you can use
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 '20230912T161312Z-8ba03' #> Writing to pin 'cars_linear' vetiver_write_plumber(b, "cars_linear", file = tmp_plumber) ## default port vetiver_write_docker(v, tmp_plumber, tempdir()) #> - The lockfile is already up to date. ## install more pkgs, like those required to access board vetiver_write_docker(v, tmp_plumber, tempdir(), additional_pkgs = required_pkgs(b)) #> - The lockfile is already up to date. ## port from env variable vetiver_write_docker(v, tmp_plumber, tempdir(), port = 'as.numeric(Sys.getenv("PORT"))', expose = FALSE) #> - The lockfile is already up to date.