shiny2docker | R Documentation |
Generate a Dockerfile for a Shiny Application
shiny2docker(
path = ".",
lockfile = file.path(path, "renv.lock"),
output = file.path(path, "Dockerfile"),
FROM = "rocker/geospatial",
AS = NULL,
sysreqs = TRUE,
repos = c(CRAN = "https://cran.rstudio.com/"),
expand = FALSE,
extra_sysreqs = NULL,
use_pak = FALSE,
user = NULL,
dependencies = NA,
sysreqs_platform = "ubuntu",
folder_to_exclude = c("renv")
)
path |
Character. Path to the folder containing the Shiny application (e.g., |
lockfile |
Character. Path to the |
output |
Character. Path to the generated Dockerfile. Defaults to |
FROM |
Docker image to start FROM Default is FROM rocker/r-base |
AS |
The AS of the Dockerfile. Default it |
sysreqs |
boolean. If |
repos |
character. The URL(s) of the repositories to use for |
expand |
boolean. If |
extra_sysreqs |
character vector. Extra debian system requirements. Will be installed with apt-get install. |
use_pak |
boolean. If |
user |
Name of the user to specify in the Dockerfile with the USER instruction. Default is |
dependencies |
What kinds of dependencies to install. Most commonly one of the following values:
|
sysreqs_platform |
System requirements platform. |
folder_to_exclude |
Folder to exclude during scan to detect packages |
Automate the creation of a Dockerfile tailored for deploying Shiny applications. It manages R dependencies using renv
, generates a .dockerignore
file to optimize the Docker build process, and leverages the dockerfiler
package to allow further customization of the Dockerfile object before writing it to disk.
An object of class dockerfiler
, representing the generated Dockerfile. This object can be further manipulated using dockerfiler
functions before being written to disk.
temp_dir <- tempfile("shiny2docker_example_")
dir.create(temp_dir)
example_app <- system.file("dummy_app", package = "shiny2docker")
file.copy(example_app, temp_dir, recursive = TRUE)
app_path <- file.path(temp_dir, "dummy_app")
if (requireNamespace("rstudioapi", quietly = TRUE) &&
rstudioapi::isAvailable()) {
rstudioapi::filesPaneNavigate(app_path)
}
docker_obj <- shiny2docker::shiny2docker(path = app_path)
print(list.files(app_path,all.files = TRUE,no.. = TRUE))
# Further manipulate the Dockerfile object
docker_obj$add_after(
cmd = "ENV ENV \'MY_ENV_VAR\'=\'value\'",
after = 3
)
docker_obj$write(file.path(app_path, "Dockerfile"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.