R/docker_run_rserver.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,
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
)
character(1)
the name of the rocker
image to use.
integer(1)
the port to present R Studio server at`.
character(1)
the password to used for R Studio server.
character(1)
the 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)
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".
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.
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
, rather than run the command. Mainly here for testing and
roxygen example.
The solution for the permissions
of the volumes
was taken
from
https://github.com/rocker-org/rocker/wiki/Sharing-files-with-host-machine.
# 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 = " ")
#> [1] "docker run --env PASSWORD=bioc --publish 8888:8787 --detach --name your_container_name bioconductor/bioconductor_docker:RELEASE_3_13"