Deploy Containerised Shinyproxy with Azure Web App Services and Docker Compose

Is this possible? I have tried multiple configs in application.yml and in both dockerfile and docker compose but can’t get the app to open in shiny proxy when deploying the app in Azure due to either the docker refusing connection or directory not found error. the app works flawlessly with docker compose up in local environment with internal networking and with both app and shinyproxy containerised. Has anyone done it before or is there a guide on how to?

Thank you in advance

I am facing the same issue when deploying a containerised shiny proxy (copied the workflow from YiHui’s tutorial https://www.databentobox.com/2019/11/05/deploy-r-app-with-shinyproxy/). Followed the tutorial on Azure for cloud deployment https://docs.microsoft.com/en-us/azure/container-instances/container-instances-tutorial-deploy-app

The Shiny proxy java app works fine, able to login but opening the shiny app gives a status code 500 error

Error

Status code: 500

Message: Failed to start container

Stack Trace: A bunch of messages

Hi,

Same problem here. Stanalone java app working fine but i get an 500 Error

After inspecting i take the probable cause is that the shinyproxy container is not able to communicate with the docker daemon to lauch the shinyapp container. I think that the -v option from the run command is not exposing the unix socket.

some things to take into account are:

  1. application.yml: use the internal-networking: true

  2. in the specs section, for each app append this line container-network: name_of_the_network

Still i get the same error:

Error 500 Failed to start the container Caused by: com.spotify.docker.client.exceptions.DockerException: java.util.concurrent.ExecutionException: javax.ws.rs.ProcessingException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:2375 [localhost/127.0.0.1] failed: Connection refused (Connection refused)

Well i finally found the problem:

I just simply rebuilt a shinyapp container and tested it again with the above settings and it works.

BTW i didn’t need the file in /etc/systemd/system/docker.service.d/override.conf

docker version 19.03.13

2 Likes

hi! I’m now coming across the same thing and using the settings you describe above (also deploying in azure, as a multi-container instance). The java shinyproxy part works fine but when I navigate from there to my shinyapp, it gives the 500 error with connection refused. If I expose the shiny app port and navigate directly there, the app is working, it just doesn’t work via the shinyproxy route. Any ideas what I could do to troubleshoot this? Thank you.

Also this works perfectly fine with an internal network when I do docker compose locally.

This might be happening due to shinyproxy container requiring docker daemon access which might be blocked by Azure app service. Shinyproxy requires docker daemon access to manage containers of the applications. This would work fine on Azure Kubernetes Service.

After diving deep down azure and it’s docker services it occured to me that the preview version of docker compose does not support internal networking nor multiple container support. It is something they have been working on and would eventually roll out depending on the feedback from users.

1 Like