Type: | Package |
Title: | Containerize R Markdown Documents for Continuous Reproducibility |
Version: | 0.9.2 |
Maintainer: | Nan Xiao <me@nanx.me> |
Description: | Persistent reproducible reporting by containerization of R Markdown documents. |
License: | GPL-3 | file LICENSE |
SystemRequirements: | Docker (see <https://docs.docker.com/install/>) |
VignetteBuilder: | knitr |
URL: | https://nanx.me/liftr/, https://github.com/nanxstats/liftr |
BugReports: | https://github.com/nanxstats/liftr/issues |
Depends: | R (≥ 3.0.2) |
Imports: | yaml, knitr, rmarkdown, stringr, rstudioapi |
Encoding: | UTF-8 |
RoxygenNote: | 6.1.1 |
NeedsCompilation: | no |
Packaged: | 2019-06-19 00:27:30 UTC; nanx |
Author: | Nan Xiao |
Repository: | CRAN |
Date/Publication: | 2019-06-19 04:20:03 UTC |
liftr: Containerize R Markdown Documents for Continuous Reproducibility
Description
Persistent reproducible reporting by containerization of R Markdown documents.
Author(s)
Maintainer: Nan Xiao me@nanx.me (0000-0002-0250-5673)
Other contributors:
Miao-Zhu Li miaozhu.li@duke.edu [contributor]
Teng-Fei Yin yintengfei@gmail.com [contributor]
See Also
Useful links:
Report bugs at https://github.com/nanxstats/liftr/issues
RStudio Addin: Containerize R Markdown Document
Description
RStudio addin for containerizing the current document.
Usage
addin_lift()
RStudio Addin: Containerize and Render R Markdown Document with Docker
Description
RStudio addin for containerizing and rendering the current document.
Usage
addin_lift_render_docker()
RStudio Addin: Remove Dangling Container + Image
Description
RStudio addin for removing any dangling Docker containers and images automatically.
Usage
addin_prune_dangling()
RStudio Addin: Remove the Built Docker Image
Description
RStudio addin for removing the Docker images used for rendering the current document.
Usage
addin_prune_image()
Check if Docker was Installed
Description
This function checks if Docker was properly installed and discoverable by R and liftr. If still not usable, please start Docker daemon
Usage
check_docker_install()
Value
TRUE
if Docker was deteted, FALSE
otherwise.
Examples
## Not run:
check_docker_install()
## End(Not run)
Check if Docker Daemon is Running
Description
This function checks if the Docker daemon is running.
Usage
check_docker_running()
Value
TRUE
if Docker daemon is running, FALSE
otherwise.
Examples
## Not run:
check_docker_running()
## End(Not run)
Installation Helper for Docker Engine
Description
This function guides you to install Docker (Engine).
Usage
install_docker()
References
https://docs.docker.com/engine/installation/
Examples
## Not run:
install_docker()
## End(Not run)
Containerize R Markdown Documents
Description
Containerize R Markdown documents. This function generates
Dockerfile
based on the liftr metadata in the RMD document.
Usage
lift(input = NULL, use_config = FALSE, config_file = "_liftr.yml",
output_dir = NULL)
Arguments
input |
Input (R Markdown) file. |
use_config |
If |
config_file |
Name of the YAML configuration file, under the
same directory as the input file. Default is |
output_dir |
Directory to output |
Details
After running lift, run render_docker on the document to
render the containerized R Markdown document using Docker containers.
See vignette('liftr-intro')
for details about the extended
YAML front-matter metadata format used by liftr.
Value
Dockerfile
.
Examples
# copy example file
dir_example = paste0(tempdir(), '/liftr-minimal/')
dir.create(dir_example)
file.copy(system.file("examples/liftr-minimal.Rmd", package = "liftr"), dir_example)
# containerization
input = paste0(dir_example, "liftr-minimal.Rmd")
lift(input)
## Not run:
# render the document with Docker
render_docker(input)
# view rendered document
browseURL(paste0(dir_example, "liftr-minimal.html"))
# purge the generated Docker image
purge_image(paste0(dir_example, "liftr-minimal.docker.yml"))
## End(Not run)
Remove Docker Containers, Images, and Networks
Description
This function removes stopped containers, all networks not used by at least one container, all dangling images, and all build cache.
Usage
prune_all_auto(volumes = FALSE)
Arguments
volumes |
Logical. Should we prune volumes? Default is |
Value
prune results
References
https://docs.docker.com/engine/admin/pruning/
Examples
## Not run:
prune_all_auto()
## End(Not run)
Remove Specific Docker Containers
Description
This function stops and removes the Docker containers used for rendering the R Markdown document based on the output YAML file from the (possibly unsuccessful) rendering process.
Usage
prune_container(input_yml)
purge_container()
Arguments
input_yml |
The YAML file path (output of |
Value
prune results
Examples
## Not run:
prune_container()
## End(Not run)
Remove Dangling Docker Containers
Description
This function prunes all dangling Docker containers automatically.
Usage
prune_container_auto()
Value
prune results
References
https://docs.docker.com/engine/admin/pruning/
Examples
## Not run:
prune_container_auto()
## End(Not run)
Remove Specific Docker Images
Description
This function removes the Docker images used for rendering the R Markdown document based on the output YAML file from the (possibly unsuccessful) rendering process.
Usage
prune_image(input_yml)
purge_image()
Arguments
input_yml |
The YAML file path (output of |
Value
prune results
Examples
## Not run:
prune_image()
## End(Not run)
Remove Dangling Docker Images
Description
This function prunes all dangling Docker images automatically.
Usage
prune_image_auto()
Value
prune results
References
https://docs.docker.com/engine/admin/pruning/
Examples
## Not run:
prune_image_auto()
## End(Not run)
Render Containerized R Markdown Documents
Description
Render R Markdown documents using Docker.
Usage
render_docker(input = NULL, tag = NULL, container_name = NULL,
cache = TRUE, build_args = NULL, run_args = NULL, prune = TRUE,
prune_info = TRUE, dry_run = FALSE, ...)
drender(...)
Arguments
input |
Input file to render in Docker container. |
tag |
Docker image name to build, sent as docker argument |
container_name |
Docker container name to run. If not specified, will use a randomly generated name. |
cache |
Logical. Controls the |
build_args |
A character string specifying additional
|
run_args |
A character string specifying additional
|
prune |
Logical. Should we clean up all dangling containers,
volumes, networks, and images in case the rendering was not successful?
Default is |
prune_info |
Logical. Should we save the Docker container and
image information to a YAML file (name ended with |
dry_run |
Preview the Docker commands but do not run them?
Useful for debugging purposes. Default is |
... |
Additional arguments passed to
|
Details
Before using this function, please run lift
on the
RMD document first to generate the Dockerfile
.
After a successful rendering, you will be able to clean up the
Docker image with prune_image
.
Please see vignette('liftr-intro')
for details of the extended
YAML metadata format and system requirements for writing and rendering
containerized R Markdown documents.
Value
A list containing the image name, container name, and Docker commands will be returned.
An YAML file ending with
.docker.yml
storing the image name, container name, and Docker commands for rendering this document will be written to the directory of the input file.The rendered output will be written to the directory of the input file.
Examples
# copy example file
dir_example = paste0(tempdir(), "/liftr-tidyverse/")
dir.create(dir_example)
file.copy(system.file("examples/liftr-tidyverse.Rmd", package = "liftr"), dir_example)
# containerization
input = paste0(dir_example, "liftr-tidyverse.Rmd")
lift(input)
## Not run:
# print the Docker commands first
render_docker(input, dry_run = TRUE)
# render the document with Docker
render_docker(input)
# view rendered document
browseURL(paste0(dir_example, "liftr-tidyverse.pdf"))
# remove the generated Docker image
prune_image(paste0(dir_example, "liftr-tidyverse.docker.yml"))
## End(Not run)