Add template assets for the use case specified in add_dockerfile or use_docker.
Arguments
- pkg_path
Path to the package directory. Default is
"."
for the current working directory, which assumes developer is working in R package root. However, this can be set to another path as needed.- img_path
Path to the write the docker image definition contents. The default
NULL
will usedocker/
as a subdirectory of thepkg_path
.- use_case
Name of the use case. Defaults to
"default"
, which only uses the base boilerplate.- overwrite
Logical; should existing assets should be overwritten? Default is
TRUE
.
Value
Invisibly returns assets per handle_use_case. Called primarily for its side effects.
Details
Example #1: the "shiny"
use case requires than an app.R
file moved into
/srv/shiny-server/
in the container image. Using add_assets(use_case="shiny")
(or when using the "shiny"
use case in add_dockerfile or use_docker)
will create a placeholder assets/app.R
in the docker/
directory. The
Dockerfile for the "shiny"
use case will place COPY assets/app.R/srv/shiny-server
into the Dockerfile.
Example #2: the "pipeline"
use case creates boilerplate for moving pre- and
post-processing R and shell scripts into the container at
add_assets(use_case="pipeline")
(or when using the "pipeline"
use case in
add_dockerfile or use_docker) will create a placeholder assets/pre.R
,
assets/post.R
, and assets/run.sh
into the docker/assets
directory. The
Dockerfile for the "pipeline"
use case will place COPY assets/run.sh /run.sh
into the Dockerfile.
This function is run as part of use_docker but can be used on its own.
See vignette("use-cases", package="pracpac")
for details on use cases.
Examples
if (FALSE) {
# Specify path to example package source and copy to tempdir()
# Note that in practice you do not need to copy to a tempdir()
# And in fact it may be easiest to use pracpac relative to your package directory root
ex_pkg_src <- system.file("hellow", package = "pracpac", mustWork = TRUE)
file.copy(from = ex_pkg_src, to = tempdir(), recursive = TRUE)
# Add assets for shiny use case
add_assets(pkg_path = file.path(tempdir(), "hellow"), use_case="shiny")
# Add assets for pipeline use case
add_assets(pkg_path = file.path(tempdir(), "hellow"), use_case="pipeline")
}