docker_run_rserver: Run an R Studio server instance on rocker-based image

Description Usage Arguments References Examples

View source: R/docker_run_rserver.R

Description

A wrapper for the docker function used to run a R Studio server process on a specified docker image. The docker image must be based on rocker. This will be available at the port specified on the host. Currently, the permissions argument operates through setting a USERID and GROUPID, which are by default set to my user's settings. The USERID and GROUPID of the current user can be checked using the id bash command. In order to make sure your volumes have the correct permissions, these settings should be modified to match the user of interest.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
docker_run_rserver(
  image,
  port,
  password = "bioc",
  name = "rockup_container",
  detach = TRUE,
  rm = FALSE,
  volumes = NULL,
  volumes_ro = NULL,
  permissions = NULL,
  USERID = NULL,
  GROUPID = NULL,
  verbose = TRUE,
  return_flags = FALSE
)

Arguments

image

character(1) the name of the rocker image to use.

port

integer(1) the port to present R Studio server at'.

password

character(1) the password to used for R Studio server.

name

character(1) the name for the container.

detach

logical(1) whether to use the -d flag when running the container. Should the container continue to run in the background after docker run has executed?

rm

logical(1) whether to use the -rm flag when running the container. Should the container be removed when stopped?

volumes

character(1) the paths for the host files/directories that you want accessible in the container. See argument permissions for read/write access to these. Can either be a path on host or in the form "host_path:container_path".

volumes_ro

character(1) the paths for the host files/directories that you want to have read-only access for in the container. This option is recommended for any volumes you don't need to modify.

permissions

character(1) if set to "match" (be careful!), then the permissions of the mounted volumes on the container, will match that of the host. I.e. the user executing the docker command will have permissions to read/write/execute in the container as they did on the host.

USERID

integer(1) the USERID of the user for which you would like the permissions of the mounted volumes to match.

GROUPID

integer(1) the GROUPID of the user for which you would like the permissions of the mounted volumes to match.

verbose

logical(1) whether to display the command to be run (for debugging purposes).

return_flags

logical(1) whether to return the flags to be inputted into docker run, rather than run the command. Mainly here for testing and roxygen example.

References

The solution for the permissions of the volumes was taken from https://github.com/rocker-org/rocker/wiki/Sharing-files-with-host-machine.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# below is an example of running docker_run_rserver with minimal config
# importantly, return_flags is set to TRUE
# so this command will NOT execute the docker run command
# only return the flags that would be run, were return_flags set to FALSE
# this is purely for the roxygen example
# in practice, users should set return_flags to FALSE
docker_flags <- docker_run_rserver(
  image = "bioconductor/bioconductor_docker:RELEASE_3_13",
  port = 8888,
  name = "your_container_name",
  return_flags = TRUE
)

# the docker command that would run on the system if return_flags = FALSE
paste(c("docker", docker_flags), collapse = " ")

rytenlab/rockup documentation built on Dec. 22, 2021, 8:19 p.m.