rocker-org / rocker-versioned

Run current & prior versions of R using docker
https://hub.docker.com/r/rocker/r-ver
GNU General Public License v2.0
297 stars 169 forks source link

Unable to connect to service #193

Closed spsanderson closed 4 years ago

spsanderson commented 4 years ago

I am running rocker/tidyverse via my docker compose file Ubuntu Server 18.04LTS up to date as of today.

version: "3.6"
services:

  rstudio:
    image: rocker/tidyverse
    container_name: rstudio
    restart: always
    volumes:
      - /mnt/misc/rstudio:/home/rstudio
    ports:
      - 8787:8787
    environment:
      - PASSWORD=my_awesome_password

Upon running the compose file I go to my local ip 192.168.1.8:8787 and get a message:

RStudio Initialization Error Cannot connect to service

Here are my log files from portainer:

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.,
[s6-init] ensuring user provided files have correct perms...exited 0.,
[fix-attrs.d] applying ownership & permissions fixes...,
[fix-attrs.d] done.,
[cont-init.d] executing container initialization scripts...,
[cont-init.d] add: executing... ,
Nothing additional to add,
[cont-init.d] add: exited 0.,
[cont-init.d] userconf: executing... ,
[cont-init.d] userconf: exited 0.,
[cont-init.d] done.,
[services.d] starting services,
[services.d] done.,
[cont-finish.d] executing container finish scripts...,
[cont-finish.d] done.,
[s6-finish] syncing disks.,
ession: no process found,
[s6-finish] sending all processes the TERM signal.,
[s6-finish] sending all processes the KILL signal and exiting.,
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.,
[s6-init] ensuring user provided files have correct perms...exited 0.,
[fix-attrs.d] applying ownership & permissions fixes...,
[fix-attrs.d] done.,
[cont-init.d] executing container initialization scripts...,
[cont-init.d] add: executing... ,
Nothing additional to add,
[cont-init.d] add: exited 0.,
[cont-init.d] userconf: executing... ,
[cont-init.d] userconf: exited 0.,
[cont-init.d] done.,
[services.d] starting services,
[services.d] done.,
[cont-finish.d] executing container finish scripts...,
[cont-finish.d] done.,
[s6-finish] syncing disks.,
ession: no process found,
[s6-finish] sending all processes the TERM signal.,
[s6-finish] sending all processes the KILL signal and exiting.,
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.,
[s6-init] ensuring user provided files have correct perms...exited 0.,
[fix-attrs.d] applying ownership & permissions fixes...,
[fix-attrs.d] done.,
[cont-init.d] executing container initialization scripts...,
[cont-init.d] add: executing... ,
Nothing additional to add,
[cont-init.d] add: exited 0.,
[cont-init.d] userconf: executing... ,
[cont-init.d] userconf: exited 0.,
[cont-init.d] done.,
[services.d] starting services,
[services.d] done.,
[cont-finish.d] executing container finish scripts...,
[cont-finish.d] done.,
[s6-finish] syncing disks.,
ession: no process found,
[s6-finish] sending all processes the TERM signal.,
[s6-finish] sending all processes the KILL signal and exiting.,
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.,
[s6-init] ensuring user provided files have correct perms...exited 0.,
[fix-attrs.d] applying ownership & permissions fixes...,
[fix-attrs.d] done.,
[cont-init.d] executing container initialization scripts...,
[cont-init.d] add: executing... ,
Nothing additional to add,
[cont-init.d] add: exited 0.,
[cont-init.d] userconf: executing... ,
[cont-init.d] userconf: exited 0.,
[cont-init.d] done.,
[services.d] starting services,
[services.d] done.,
cboettig commented 4 years ago

weird, looks like your instance is somehow calling ession instead of calling rsession. What image hash are you using? (e.g. check docker images). also maybe just try a docker pull rocker/tidyverse first?

spsanderson commented 4 years ago

I am using this image: sha256:aa9a8a046443a3eff94f766b31534bdccc2db15c5d30822ed3c2179d0a1251e1

When I run the compose file it pulls and extracts just fine, I can even get to the address and it asks me to login. Then it fails

cboettig commented 4 years ago

sha256:aa9a8a046443a3eff94f766b31534bdccc2db15c5d30822ed3c2179d0a1251e1

thanks for confirming, I'm on the same image.

I can even get to the address and it asks me to login. Then it fails

You mean you see the RStudio login screen at the IP address? it fails after you log in?

Just to test things out here, can you try without linking a shared volume, (and let's try without compose just to be sure) e.g.

docker run --rm -p 8787:8787 -e PASSWORD=test rocker/tidyverse

and see if that works or let me know what you see in the logs?

spsanderson commented 4 years ago

That is correct, I will try those changes tonight, I'm behind nginx and have not set up a reverse proxy so I can't try at this moment.

Steven P Sanderson II, MPH

On Thu, Feb 13, 2020, 12:00 PM Carl Boettiger notifications@github.com wrote:

sha256:aa9a8a046443a3eff94f766b31534bdccc2db15c5d30822ed3c2179d0a1251e1

thanks for confirming, I'm on the same image.

I can even get to the address and it asks me to login. Then it fails

You mean you see the RStudio login screen at the IP address? it fails after you log in?

Just to test things out here, can you try without linking a shared volume, (and let's try without compose just to be sure) e.g.

docker run --rm -p 8787:8787 -e PASSWORD=test rocker/tidyverse

and see if that works or let me know what you see in the logs?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/rocker-org/rocker-versioned/issues/193?email_source=notifications&email_token=AAPCNS74O3SXPS3DPPW6KQ3RCV4B3A5CNFSM4KUI5VSKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELVYR7Q#issuecomment-585861374, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAPCNS7LZKCMPZORY2W2RJTRCV4B3ANCNFSM4KUI5VSA .

spsanderson commented 4 years ago

So when I comment out the volume I am able to get in not sure why it works but it did. I still use the compose and it worked.

Log Output

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.,
[s6-init] ensuring user provided files have correct perms...exited 0.,
[fix-attrs.d] applying ownership & permissions fixes...,
[fix-attrs.d] done.,
[cont-init.d] executing container initialization scripts...,
[cont-init.d] add: executing... ,
Nothing additional to add,
[cont-init.d] add: exited 0.,
[cont-init.d] userconf: executing... ,
[cont-init.d] userconf: exited 0.,
[cont-init.d] done.,
[services.d] starting services,
[services.d] done.,
cboettig commented 4 years ago

Yeah, I thought that might be the culprit. You're overwriting the user home directory /home/rstudio with your linked volume, which isn't a great idea -- the Docker container has placed some user-specific RStudio configuration files there. Of course you're at liberty to overwrite those, but I have no idea what's in the volume you linked, and so perhaps you have some malformed config file or missing some necessary file in your linked volume. Also I can't assess permissions on your linked volume. RStudio needs to be able to read that dir to bring up the session. (Still not sure why it throws the error message you see in ession, but it is telling that the issue only comes in after you log in, which suggests something to do with config in /home/rstudio instead of system config).

In general we recommend users map volumes to a subdirectory of home, e.g. /home/rstudio/data or something. Give that a try and see if that fixes things.

spsanderson commented 4 years ago

In the dir /mnt/misc/rstudio there is nothing, it is an empty directory I set for rstudio. I'll try mapping to /home/rstudio/data and report back

spsanderson commented 4 years ago

that did the trick!! Closing this