R/docker_shell.R
docker_run_rserver.RdA 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.
docker_run_rserver(
image = "bioconductor/bioconductor_docker:RELEASE_3_13",
port = 8888,
password = "bioc",
name = "dz_bioc",
detach = TRUE,
rm = FALSE,
volumes = NULL,
volumes_ro = NULL,
permissions = "match",
USERID = 1002,
GROUPID = 1024,
verbose = TRUE,
return_flags = FALSE
)character(1) name of the image to use
integer(1) port of the host which will be used to access
RStudio server via localhost::port.
character(1) password to used for RStudio server.
character(1) name for the container.
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?
logical(1) whether to use the -rm flag when running the
container. Should the container be removed when stopped?
character(1) paths for the hosts files 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".
character(1) paths for the hosts files that you want
accessible in the container. These will be read-only on the container and
this option is recommended for any volumes you don't need to modify.
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.
integer(1) the USERID of the user for which you would like
the permissions of the mounted volumes to match.
integer(1) the GROUPID of the user for which you would like
the permissions of the mounted volumes to match.
logical(1) whether to display the command to be run (for
debugging purposes).
logical(1) whether to return the flags to be inputted
into docker run. Used for testing and example.
docker_run_rserver is based on
https://github.com/LieberInstitute/megadepth/blob/master/R/megadepth.R.
The solution for the permissions of the volumes was taken from
https://github.com/rocker-org/rocker/wiki/Sharing-files-with-host-machine.
docker_flags <- docker_run_rserver(return_flags = TRUE)
# the docker command that would run on the system if return_flags = FALSE
paste(c("docker", docker_flags), collapse = " ")
#> [1] "docker run --env PASSWORD=bioc --publish 8888:8787 --detach --name dz_bioc --env USERID=1002 --env GROUPID=1024 bioconductor/bioconductor_docker:RELEASE_3_13"