R/docker_shell.R
docker_run_rserver.Rd
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.
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"