I’m running into the same problem. To make sure there are no issues related to our own I just tried a vanilla setup of https://github.com/openanalytics/shinyproxy-config-examples/tree/master/02-containerized-docker-engine. These steps reproduce after retrieving Dockerfile and application.yml from above github link. I removed authentication to exclude that as a possible cause as well.
docker network create sp-example-net
docker build . -t shinyproxy-example
docker pull openanalytics/shinyproxy-demo
docker run -d -v /var/run/docker.sock:/var/run/docker.sock --net sp-example-net -p 8080:8080 shinyproxy-example
ShinyProxy loads, opening the Hello World app retrieves a containerPath. However, the resulting GET /endpooint/{UUID} returns a 500. The full shinyproxy.log from start and opening the helloworld app is added below. Any pointers on how this can be resolved would be greatly appreciated.
2018-08-15 08:44:59.734 INFO 1 --- [main] e.o.c.ContainerProxyApplication : Starting ContainerProxyApplication v0.2.1-SNAPSHOT on fdf761d8c24e with PID 1 (/opt/shinyproxy/shinyproxy.jar started by root in /opt/shinyproxy)
2018-08-15 08:44:59.739 INFO 1 --- [main] e.o.c.ContainerProxyApplication : No active profile set, falling back to default profiles: default
2018-08-15 08:44:59.837 INFO 1 --- [main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@6a5fc7f7: startup date [Wed Aug 15 08:44:59 UTC 2018]; root of context hierarchy
2018-08-15 08:45:02.491 INFO 1 --- [main] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2018-08-15 08:45:04.746 INFO 1 --- [main] org.xnio : XNIO version 3.3.8.Final
2018-08-15 08:45:04.782 INFO 1 --- [main] org.xnio.nio : XNIO NIO Implementation Version 3.3.8.Final
2018-08-15 08:45:04.917 WARN 1 --- [main] io.undertow.websockets.jsr : UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
2018-08-15 08:45:04.918 WARN 1 --- [main] io.undertow.websockets.jsr : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
2018-08-15 08:45:04.959 INFO 1 --- [main] io.undertow.servlet : Initializing Spring embedded WebApplicationContext
2018-08-15 08:45:04.960 INFO 1 --- [main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 5123 ms
2018-08-15 08:45:05.405 INFO 1 --- [main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-08-15 08:45:05.407 INFO 1 --- [main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-08-15 08:45:05.408 INFO 1 --- [main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2018-08-15 08:45:05.409 INFO 1 --- [main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2018-08-15 08:45:05.410 INFO 1 --- [main] .s.DelegatingFilterProxyRegistrationBean : Mapping filter: 'springSecurityFilterChain' to: [/*]
2018-08-15 08:45:05.411 INFO 1 --- [main] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
2018-08-15 08:45:06.224 INFO 1 --- [main] e.o.c.stat.StatCollectorRegistry : Disabled. Usage statistics will not be processed.
2018-08-15 08:45:06.481 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/css/**'], []
2018-08-15 08:45:06.482 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/img/**'], []
2018-08-15 08:45:06.483 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/js/**'], []
2018-08-15 08:45:06.483 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/assets/**'], []
2018-08-15 08:45:06.483 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/webjars/**'], []
2018-08-15 08:45:06.605 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: org.springframework.security.web.util.matcher.AnyRequestMatcher@1, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@2dde1bff, org.springframework.security.web.context.SecurityContextPersistenceFilter@34f5090e, org.springframework.security.web.header.HeaderWriterFilter@1613674b, org.springframework.security.web.authentication.logout.LogoutFilter@22e357dc, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@a2431d0, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1b6e1eff, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@15bbf42f, org.springframework.security.web.session.SessionManagementFilter@4e096385, org.springframework.security.web.access.ExceptionTranslationFilter@1e6454ec]
2018-08-15 08:45:06.655 WARN 1 --- [main] org.thymeleaf.templatemode.TemplateMode : [THYMELEAF][main] Template Mode 'HTML5' is deprecated. Using Template Mode 'HTML' instead.
2018-08-15 08:45:07.456 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@6a5fc7f7: startup date [Wed Aug 15 08:44:59 UTC 2018]; root of context hierarchy
2018-08-15 08:45:07.622 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/admin]}" onto private java.lang.String eu.openanalytics.shinyproxy.controllers.AdminController.admin(org.springframework.ui.ModelMap,javax.servlet.http.HttpServletRequest)
2018-08-15 08:45:07.627 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/app/*],methods=[GET]}" onto public java.lang.String eu.openanalytics.shinyproxy.controllers.AppController.app(org.springframework.ui.ModelMap,javax.servlet.http.HttpServletRequest)
2018-08-15 08:45:07.629 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/app_direct/*],methods=[GET]}" onto public java.lang.Object eu.openanalytics.shinyproxy.controllers.AppController.appDirect(org.springframework.ui.ModelMap,javax.servlet.http.HttpServletRequest)
2018-08-15 08:45:07.635 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/app/*],methods=[POST]}" onto public java.util.Map<java.lang.String, java.lang.String> eu.openanalytics.shinyproxy.controllers.AppController.startApp(javax.servlet.http.HttpServletRequest)
2018-08-15 08:45:07.639 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/issue],methods=[POST]}" onto public java.lang.String eu.openanalytics.shinyproxy.controllers.IssueController.postIssue(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2018-08-15 08:45:07.641 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto private java.lang.String eu.openanalytics.shinyproxy.controllers.IndexController.index(org.springframework.ui.ModelMap,javax.servlet.http.HttpServletRequest)
2018-08-15 08:45:07.645 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public java.lang.String eu.openanalytics.containerproxy.ui.ErrorController.handleError(org.springframework.ui.ModelMap,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2018-08-15 08:45:07.647 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],consumes=[application/json],produces=[application/json]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> eu.openanalytics.containerproxy.ui.ErrorController.error(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2018-08-15 08:45:07.649 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/login],methods=[GET]}" onto public java.lang.Object eu.openanalytics.containerproxy.ui.LoginController.getLoginPage(java.util.Optional<java.lang.String>,org.springframework.ui.ModelMap,javax.servlet.http.HttpServletRequest)
2018-08-15 08:45:07.666 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxy/{proxyId}],methods=[GET],produces=[application/json]}" onto public org.springframework.http.ResponseEntity<eu.openanalytics.containerproxy.model.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.getProxy(java.lang.String)
2018-08-15 08:45:07.667 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxyspec/{proxySpecId}],methods=[GET],produces=[application/json]}" onto public org.springframework.http.ResponseEntity<eu.openanalytics.containerproxy.model.spec.ProxySpec> eu.openanalytics.containerproxy.api.ProxyController.getProxySpec(java.lang.String)
2018-08-15 08:45:07.669 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxy/{proxySpecId}],methods=[POST],produces=[application/json]}" onto public org.springframework.http.ResponseEntity<eu.openanalytics.containerproxy.model.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.startProxy(java.lang.String,java.util.Set<eu.openanalytics.containerproxy.model.runtime.RuntimeSetting>)
2018-08-15 08:45:07.673 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxy],methods=[POST],produces=[application/json]}" onto public org.springframework.http.ResponseEntity<eu.openanalytics.containerproxy.model.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.startProxy(eu.openanalytics.containerproxy.model.spec.ProxySpec)
2018-08-15 08:45:07.673 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxy/{proxyId}],methods=[DELETE],produces=[application/json]}" onto public org.springframework.http.ResponseEntity<java.lang.String> eu.openanalytics.containerproxy.api.ProxyController.stopProxy(java.lang.String)
2018-08-15 08:45:07.674 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxyspec],methods=[GET],produces=[application/json]}" onto public java.util.List<eu.openanalytics.containerproxy.model.spec.ProxySpec> eu.openanalytics.containerproxy.api.ProxyController.listProxySpecs()
2018-08-15 08:45:07.675 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxy],methods=[GET],produces=[application/json]}" onto public java.util.List<eu.openanalytics.containerproxy.model.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.listProxies()
2018-08-15 08:45:07.801 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/assets/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-08-15 08:45:07.802 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-08-15 08:45:07.803 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-08-15 08:45:07.840 INFO 1 --- [main] .m.m.a.ExceptionHandlerExceptionResolver : Detected @ExceptionHandler methods in baseController.RestErrorHandler
2018-08-15 08:45:07.906 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-08-15 08:45:08.117 INFO 1 --- [main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index
2018-08-15 08:45:08.307 INFO 1 --- [main] o.s.l.c.support.AbstractContextSource : Property 'userDn' not set - anonymous context will be used for read-write operations
2018-08-15 08:45:08.815 INFO 1 --- [main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2018-08-15 08:45:08.822 INFO 1 --- [main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'dataSource' has been autodetected for JMX exposure
2018-08-15 08:45:08.838 INFO 1 --- [main] o.s.j.e.a.AnnotationMBeanExporter : Located MBean 'dataSource': registering with JMX server as MBean [com.zaxxer.hikari:name=dataSource,type=HikariDataSource]
2018-08-15 08:45:08.990 INFO 1 --- [main] o.s.b.w.e.u.UndertowServletWebServer : Undertow started on port(s) 8080 (http) with context path ''
2018-08-15 08:45:08.998 INFO 1 --- [main] e.o.c.ContainerProxyApplication : Started ContainerProxyApplication in 10.467 seconds (JVM running for 11.512)
2018-08-15 08:45:16.882 INFO 1 --- [XNIO-2 task-1] io.undertow.servlet : Initializing Spring FrameworkServlet 'dispatcherServlet'
2018-08-15 08:45:16.883 INFO 1 --- [XNIO-2 task-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2018-08-15 08:45:16.946 INFO 1 --- [XNIO-2 task-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 63 ms
2018-08-15 08:45:22.590 INFO 1 --- [XNIO-2 task-16] c.s.docker.client.DefaultDockerClient : Starting container with Id: 1df4bae170121a884891dec6a718ded321318aaa06787b1065e9a89429d14a91
2018-08-15 08:45:25.869 INFO 1 --- [XNIO-2 task-16] e.o.containerproxy.service.ProxyService : Proxy activated [user: anonymousUser] [spec: 01_hello] [id: bfd6a892-3fc8-451a-894f-2776e7f1e54a]
2018-08-15 08:45:25.926 ERROR 1 --- [XNIO-2 I/O-1] io.undertow.request : UT005071: Undertow request failed HttpServerExchange{ GET /endpoint/bfd6a892-3fc8-451a-894f-2776e7f1e54a/ request {Accept=[text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8], Accept-Language=[nl-NL,nl;q=0.9,en-US;q=0.8,en;q=0.7], Cache-Control=[no-cache], Accept-Encoding=[gzip, deflate], Pragma=[no-cache], User-Agent=[Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36], Connection=[keep-alive], Referer=[http://redacted:8080/app/01_hello], Upgrade-Insecure-Requests=[1], Host=[redacted:8080]} response HttpServerExchange{ GET /endpoint/bfd6a892-3fc8-451a-894f-2776e7f1e54a/ request {Accept=[text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8], Accept-Language=[nl-NL,nl;q=0.9,en-US;q=0.8,en;q=0.7], Cache-Control=[no-cache], Accept-Encoding=[gzip, deflate], Pragma=[no-cache], User-Agent=[Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36], Connection=[keep-alive], Referer=[http://redacted/app/01_hello], Upgrade-Insecure-Requests=[1], Host=[redacted]} response {}}}
java.lang.NullPointerException: null
at eu.openanalytics.containerproxy.util.ProxyMappingManager$MappingOwnerInfo.isSame(ProxyMappingManager.java:125) ~[containerproxy-0.2.1-SNAPSHOT.jar!/:0.2.1-SNAPSHOT]
at eu.openanalytics.containerproxy.util.ProxyMappingManager.requestHasAccess(ProxyMappingManager.java:94) ~[containerproxy-0.2.1-SNAPSHOT.jar!/:0.2.1-SNAPSHOT]
at eu.openanalytics.containerproxy.ContainerProxyApplication$ProtectedPathHandler.handleRequest(ContainerProxyApplication.java:100) ~[containerproxy-0.2.1-SNAPSHOT.jar!/:0.2.1-SNAPSHOT]
at io.undertow.server.handlers.HttpContinueReadHandler.handleRequest(HttpContinueReadHandler.java:65) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:336) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.protocol.http.HttpReadListener.handleEventWithNoRunningRequest(HttpReadListener.java:255) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.protocol.http.HttpReadListener.handleEvent(HttpReadListener.java:136) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.protocol.http.HttpReadListener.handleEvent(HttpReadListener.java:59) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) [xnio-api-3.3.8.Final.jar!/:3.3.8.Final]
at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66) [xnio-api-3.3.8.Final.jar!/:3.3.8.Final]
at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:88) [xnio-nio-3.3.8.Final.jar!/:3.3.8.Final]
at org.xnio.nio.WorkerThread.run(WorkerThread.java:561) [xnio-nio-3.3.8.Final.jar!/:3.3.8.Final]