Bioconductor / bioconductor_docker

Docker Containers for Bioconductor
https://bioconductor.org/help/docker/
Artistic License 2.0
73 stars 31 forks source link

Could not connect to the R session on RStudio Server #51

Closed rgaiacs closed 2 years ago

rgaiacs commented 2 years ago

Describe the bug

After login, RStudio Server shows

Screenshot from 2022-08-26 12-45-03

To Reproduce

Consider the following docker-compose.yml:

version: "3.9"
services:

  dev:
    image: bioconductor/bioconductor_docker:devel
    environment:
      USERID: $UID
      PASSWORD: bioc
    ports:
      - 8787:8787
    working_dir: /home/rstudio
    volumes:
      - .:/home/rstudio

Steps to reproduce the behavior:

  1. Run docker compose up dev --build
  2. Open http://localhost:878 with your web browser
  3. Login using rstudio and bio for the username and password, respectively.

Expected behavior

Access the web version of the RStudio IDE.

Screenshots

Desktop (please complete the following information):

rgaiacs commented 2 years ago

I discovered that UID is a shell variable and not a environment variable. This means that $UID is empty as pointed by Docker at

WARN[0000] The "UID" variable is not set. Defaulting to a blank string.

I resolved the problem by changing

USERID: $UID

to

USERID: 1001

Docker log before was

codecheck-svaretro-and-svanumt-dev-1  | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
codecheck-svaretro-and-svanumt-dev-1  | [s6-init] ensuring user provided files have correct perms...exited 0.
codecheck-svaretro-and-svanumt-dev-1  | [fix-attrs.d] applying ownership & permissions fixes...
codecheck-svaretro-and-svanumt-dev-1  | [fix-attrs.d] done.
codecheck-svaretro-and-svanumt-dev-1  | [cont-init.d] executing container initialization scripts...
codecheck-svaretro-and-svanumt-dev-1  | [cont-init.d] 01_set_env: executing...
codecheck-svaretro-and-svanumt-dev-1  | skipping /var/run/s6/container_environment/HOME
codecheck-svaretro-and-svanumt-dev-1  | skipping /var/run/s6/container_environment/PASSWORD
codecheck-svaretro-and-svanumt-dev-1  | skipping /var/run/s6/container_environment/RSTUDIO_VERSION
codecheck-svaretro-and-svanumt-dev-1  | [cont-init.d] 01_set_env: exited 0.
codecheck-svaretro-and-svanumt-dev-1  | [cont-init.d] 02_userconf: executing...
codecheck-svaretro-and-svanumt-dev-1  | [cont-init.d] 02_userconf: exited 0.
codecheck-svaretro-and-svanumt-dev-1  | [cont-init.d] done.
codecheck-svaretro-and-svanumt-dev-1  | [services.d] starting services
codecheck-svaretro-and-svanumt-dev-1  | [services.d] done.

and now is

codecheck-svaretro-and-svanumt-dev-1  | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
codecheck-svaretro-and-svanumt-dev-1  | [s6-init] ensuring user provided files have correct perms...exited 0.
codecheck-svaretro-and-svanumt-dev-1  | [fix-attrs.d] applying ownership & permissions fixes...
codecheck-svaretro-and-svanumt-dev-1  | [fix-attrs.d] done.
codecheck-svaretro-and-svanumt-dev-1  | [cont-init.d] executing container initialization scripts...
codecheck-svaretro-and-svanumt-dev-1  | [cont-init.d] 01_set_env: executing...
codecheck-svaretro-and-svanumt-dev-1  | skipping /var/run/s6/container_environment/HOME
codecheck-svaretro-and-svanumt-dev-1  | skipping /var/run/s6/container_environment/PASSWORD
codecheck-svaretro-and-svanumt-dev-1  | skipping /var/run/s6/container_environment/RSTUDIO_VERSION
codecheck-svaretro-and-svanumt-dev-1  | [cont-init.d] 01_set_env: exited 0.
codecheck-svaretro-and-svanumt-dev-1  | [cont-init.d] 02_userconf: executing...
codecheck-svaretro-and-svanumt-dev-1  | [cont-init.d] 02_userconf: exited 0.
codecheck-svaretro-and-svanumt-dev-1  | [cont-init.d] done.
codecheck-svaretro-and-svanumt-dev-1  | [services.d] starting services
codecheck-svaretro-and-svanumt-dev-1  | [services.d] done.

The two important lines are deleting the default user and creating new rstudio with UID 1001.