fresh2dev / ShinyStudio

A fully Dockerized, self-hosted development environment for teams. Develop where you serve.
https://hub.docker.com/r/dm3ll3n/shinystudio
MIT License
242 stars 40 forks source link

Shiny not able to load libraries #5

Closed minorsecond closed 5 years ago

minorsecond commented 5 years ago

I'm probably overlooking something, but I can't get an app that I had previously written to work.

I copied the files over to the _apps directory, and get the following error message:

`An error has occurred

The application failed to start.

The application exited during initialization.`

I tested directly through Rstudio and it does work. I'm using several libraries for this app, so I assume that Shiny doesn't have them installed. I ran docker exec -ti $shinydockername bash, and installed the libraries into the shiny docker instance manually, but that didn't work.

Am I missing something? I was assuming that Shiny would see the libraries installed through the Rstudio docker instance.

minorsecond commented 5 years ago

Looks like it's a permissions issue, as I'm getting permission denied in the app log file. What permissions should the app have?

fresh2dev commented 5 years ago

You are correct that Shiny should see libraries installed through RStudio. Inspect the permissions on the ShinyStudio site directory, ls -la /srv/shiny-server/8080 by default. All the files should be owned by the user who invokes the Docker images, $USER. Also, anything you do in an interactive shell is done as root, and any persistent files (e.g. R libraries) will be owned by root that may or may not be accessible by standard users. So, Shiny is getting denied access to the site content or the R libraries, the only persistent components. The R libs are stored in a Docker volume, r_libraries. If you continue to have issues, can you post your Shiny log file?

minorsecond commented 5 years ago

Thanks for the help! What you've created here is greatly appreciated.

So, the only error message I get (running in interactive mode in the docker container) is -su: line 0: cd: /srv/shiny-server/bios_5300_shiny: Permission denied in the app log, and Error getting worker: Error: The application exited during initialization in the shiny-server log.

I then ran chmod -R 775, and it worked. So it was a permissions issue, I just overlooked it.

Thanks again!