Skip to content

Commit 29cfc2f

Browse files
committed
Update IO docs for Dockerfile
1 parent d310b3b commit 29cfc2f

File tree

3 files changed

+120
-12
lines changed

3 files changed

+120
-12
lines changed

R/dockerfile-io.R

Lines changed: 60 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,33 @@
11
#' Read a Dockerfile from a file
22
#'
3-
#' @param file Path to Dockerfile
4-
#' @return A dockerfile object
3+
#' Parses a **Dockerfile** from disk into a `dockerfile` object that can be
4+
#' manipulated programmatically.
5+
#'
6+
#' @param file Path to **Dockerfile**
7+
#'
8+
#' @return
9+
#' A `dockerfile` object containing the parsed instructions and metadata
10+
#'
11+
#' @examples
12+
#' \dontrun{
13+
#' # Read an existing Dockerfile
14+
#' df <- read_dockerfile("path/to/Dockerfile")
15+
#'
16+
#' # Modify it
17+
#' df <- dfi_run(df, "apt-get update")
18+
#' df
19+
#' }
20+
#'
21+
#' @details
22+
#' The function handles line continuations and extracts metadata like the
23+
#' base image, package manager, OS, and R version (if applicable).
24+
#' Comments and empty lines are skipped.
25+
#'
26+
#' @seealso
27+
#' [dockerfile()] for creating a new dockerfile object &
28+
#' [write_dockerfile()] for writing a dockerfile to disk
29+
#'
30+
#' @family dockerfile I/O functions
531
#' @export
632
read_dockerfile <- function(file) {
733
if (!file.exists(file)) {
@@ -57,12 +83,41 @@ read_dockerfile <- function(file) {
5783
df
5884
}
5985

60-
#' Write a dockerfile to a file
86+
#' Write a `dockerfile` to a file
6187
#'
62-
#' @param dockerfile A dockerfile object
88+
#' Writes a `dockerfile` object to disk as a **Dockerfile**.
89+
#'
90+
#' @param dockerfile A `dockerfile` object
6391
#' @param file Output file path (default: "Dockerfile")
6492
#' @param multiline Logical indicating if long RUN commands should be split (default: TRUE)
65-
#' @return Invisible dockerfile object
93+
#'
94+
#' @return
95+
#' Invisibly returns the `dockerfile` object
96+
#'
97+
#' @examples
98+
#' \dontrun{
99+
#' # Create and write a simple Dockerfile
100+
#' dockerfile() |>
101+
#' dfi_from("rocker/r-ver:4.4.0") |>
102+
#' dfi_run("apt-get update") |>
103+
#' write_dockerfile()
104+
#'
105+
#' # Specify a different file name
106+
#' dockerfile() |>
107+
#' dfi_from("rocker/r-ver:4.4.0") |>
108+
#' write_dockerfile("Dockerfile.dev")
109+
#' }
110+
#'
111+
#' @details
112+
#' When `multiline = TRUE` (the default), long `RUN` commands with `&&`
113+
#' will be formatted with line continuations (`\`) for better readability.
114+
#' This makes the Dockerfile more maintainable without changing its functionality.
115+
#'
116+
#' @seealso
117+
#' [read_dockerfile()] for reading a Dockerfile from disk &
118+
#' [dockerfile()] for creating a new dockerfile object
119+
#'
120+
#' @family dockerfile I/O functions
66121
#' @export
67122
write_dockerfile <- function(dockerfile, file = "Dockerfile", multiline = TRUE) {
68123
check_dockerfile(dockerfile)

man/read_dockerfile.Rd

Lines changed: 28 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/write_dockerfile.Rd

Lines changed: 32 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)