From this it seems that your Rprofile.site
file is not loaded (otherwise the host should be 0.0.0.0
and the port should be 3838, assuming this is what you’ve specified in the file).
I think this is because with the manual installation your R_HOME
is not /usr/lib/R
.
You can fix that, or alternatively pass the host = '0.0.0.0'
and port = 3838
arguments to the runApp
function.
Thank you a lot @mnazarov, it works
It was a problem of host/port option, thank you.
Just a last question, my navigation bar is hidden by the shinyproxy bar, do you know how to avoid that?
This problem comes from Google Chrome. When i open shinyproxy with google chrome, the bars overlap and i can not select my filters etc. In Firefox, it works. On the other hand, when I launch my analysis, I receive the message:
Error : unable to start device PNG
Have you an idea about this problem ?
Also, I have a problem for multiple users. If I connect as avelt and my colleague connect with an other account, my page become grayed out … As if the container restarted for my colleague but suddenly I could not do anything on my side. It seems to me that for each user, a different container is supposed to start?
Here is my application.yml :
proxy:
port: 80
authentication: simple
container-wait-time: 30000
admin-groups: admins
users:
- name: colleague
password: colleaguepassword
- name: avelt
password: aveltadpassword
groups: admins
docker:
internal-networking: true
specs:
- id: GREAT
container-cmd: ["R", "-e", ".libPaths(c('/usr/local/lib/R/site-library/','/R-3.5.2/library/'));great::shiny_greatshinyapp()"]
container-image: avelt/great
container-network: sp-example-net
logging:
file:
shinyproxy.log
Do you have an idea of the problem?
Thank you a lot for your help,
Amandine
This is indeed Chrome’s issue, please see https://github.com/openanalytics/shinyproxy/issues/139
I don’t think this is something related to shinyproxy, there could be some system libraries missing in your docker image though, or could be some R/packages (mis-)configuration, please see relevant links from google search on this error message.
Indeed for each user a separate container is supposed to start. Maybe you can look at the logs, and ‘admin panel’ to see what is happening in your case.
Thank you. I work with a shinyproxy container, not with the jar file directly. So, I don’t have the log that appears directly in my window. But in application.yml, I specified “shinyproxy.log” as log file. Where can I find this file?
Best,
Amandine
Ps :I connected with colleague’s account on internet explorer, it works fine. Then, I connected with my account on firefox, it works fine too. But the window of my colleague’s account is grayed out … Here is the information from admin panel :
Normally in the same directory as the application.yml
file. Note that you can also specify absolute path there to be sure to know where it is.
Thank you, I created a logs folder in my container and link this folder with a folder on my server.
So, I can see this log when I connect first with avelt account on firefox, then with larenault account on internet explorer. When I connect with larenault, the screen for avelt is grayed out.
Here is the shinyproxy.log :
2019-04-26 08:26:52.337 INFO 1 --- [main] e.o.c.ContainerProxyApplication : Starting ContainerProxyApplication v0.8.1 on 7ed788c2040a with PID 1 (/opt/shinyproxy/shinyproxy.jar started by root in /opt/sh
inyproxy)
2019-04-26 08:26:52.344 INFO 1 --- [main] e.o.c.ContainerProxyApplication : No active profile set, falling back to default profiles: default
2019-04-26 08:26:52.437 INFO 1 --- [main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@614c5515: startup da
te [Fri Apr 26 08:26:52 UTC 2019]; root of context hierarchy
2019-04-26 08:26:53.744 INFO 1 --- [main] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2019-04-26 08:26:55.045 INFO 1 --- [main] org.xnio : XNIO version 3.3.8.Final
2019-04-26 08:26:55.058 INFO 1 --- [main] org.xnio.nio : XNIO NIO Implementation Version 3.3.8.Final
2019-04-26 08:26:55.176 WARN 1 --- [main] io.undertow.websockets.jsr : UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
2019-04-26 08:26:55.176 WARN 1 --- [main] io.undertow.websockets.jsr : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
2019-04-26 08:26:55.202 INFO 1 --- [main] io.undertow.servlet : Initializing Spring embedded WebApplicationContext
2019-04-26 08:26:55.202 INFO 1 --- [main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 2765 ms
2019-04-26 08:26:55.419 INFO 1 --- [main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2019-04-26 08:26:55.420 INFO 1 --- [main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2019-04-26 08:26:55.420 INFO 1 --- [main] .s.DelegatingFilterProxyRegistrationBean : Mapping filter: 'springSecurityFilterChain' to: [/*]
2019-04-26 08:26:55.420 INFO 1 --- [main] o.s.boot.web.servlet.RegistrationBean : Filter orderedHiddenHttpMethodFilter was not registered (disabled)
2019-04-26 08:26:55.420 INFO 1 --- [main] o.s.boot.web.servlet.RegistrationBean : Filter orderedHttpPutFormContentFilter was not registered (disabled)
2019-04-26 08:26:55.421 INFO 1 --- [main] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
2019-04-26 08:26:55.782 INFO 1 --- [main] e.o.c.stat.StatCollectorRegistry : Disabled. Usage statistics will not be processed.
2019-04-26 08:26:55.948 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/css/**'], []
2019-04-26 08:26:55.948 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/img/**'], []
2019-04-26 08:26:55.948 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/js/**'], []
2019-04-26 08:26:55.948 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/assets/**'], []
2019-04-26 08:26:55.948 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/webjars/**'], []
2019-04-26 08:26:56.042 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: org.springframework.security.web.util.matcher.AnyRequestMatcher@1, [org.springframework.security.web.con
text.request.async.WebAsyncManagerIntegrationFilter@3527942a, org.springframework.security.web.context.SecurityContextPersistenceFilter@54a7079e, org.springframework.security.web.header.HeaderWriterFilter@51e69659
, org.springframework.security.web.authentication.logout.LogoutFilter@2dc54ad4, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@73e9cf30, org.springframework.security.web.authe
ntication.www.BasicAuthenticationFilter@942a29c, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@47d9a273, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@
1b11171f, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@1ed6388a, org.springframework.security.web.session.SessionManagementFilter@201a4587, org.springframework.security.web.access.
ExceptionTranslationFilter@71a8adcf, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@54e1c68b]
2019-04-26 08:26:56.065 WARN 1 --- [main] org.thymeleaf.templatemode.TemplateMode : [THYMELEAF][main] Template Mode 'HTML5' is deprecated. Using Template Mode 'HTML' instead.
2019-04-26 08:26:56.457 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@
614c5515: startup date [Fri Apr 26 08:26:52 UTC 2019]; root of context hierarchy
2019-04-26 08:26:56.532 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto private java.lang.Object eu.openanalytics.shinyproxy.controllers.IndexController.index(org.springframework.
ui.ModelMap,javax.servlet.http.HttpServletRequest)
2019-04-26 08:26:56.533 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/issue],methods=[POST]}" onto public java.lang.String eu.openanalytics.shinyproxy.controllers.IssueController.postIss
ue(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-04-26 08:26:56.534 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.sp
ringframework.ui.ModelMap,javax.servlet.http.HttpServletRequest)
2019-04-26 08:26:56.535 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/app_direct/**]}" onto public void eu.openanalytics.shinyproxy.controllers.AppController.appDirect(javax.servlet.http
.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-04-26 08:26:56.535 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.co
ntrollers.AppController.startApp(javax.servlet.http.HttpServletRequest)
2019-04-26 08:26:56.536 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/admin]}" onto private java.lang.String eu.openanalytics.shinyproxy.controllers.AdminController.admin(org.springframe
work.ui.ModelMap,javax.servlet.http.HttpServletRequest)
2019-04-26 08:26:56.537 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)
2019-04-26 08:26:56.538 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxyspec/{proxySpecId}],methods=[GET],produces=[application/json]}" onto public org.springframework.http.Respon
seEntity<eu.openanalytics.containerproxy.model.spec.ProxySpec> eu.openanalytics.containerproxy.api.ProxyController.getProxySpec(java.lang.String)
2019-04-26 08:26:56.538 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxy/{proxySpecId}],methods=[POST],produces=[application/json]}" onto public org.springframework.http.ResponseE
ntity<eu.openanalytics.containerproxy.model.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.startProxy(java.lang.String,java.util.Set<eu.openanalytics.containerproxy.model.runtime.RuntimeSetting
>)
2019-04-26 08:26:56.539 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.opena
nalytics.containerproxy.model.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.startProxy(eu.openanalytics.containerproxy.model.spec.ProxySpec)
2019-04-26 08:26:56.539 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.containerprox
y.model.spec.ProxySpec> eu.openanalytics.containerproxy.api.ProxyController.listProxySpecs()
2019-04-26 08:26:56.539 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.mo
del.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.listProxies()
2019-04-26 08:26:56.540 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxy/{proxyId}],methods=[DELETE],produces=[application/json]}" onto public org.springframework.http.ResponseEnt
ity<java.lang.String> eu.openanalytics.containerproxy.api.ProxyController.stopProxy(java.lang.String)
2019-04-26 08:26:56.540 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/route/**]}" onto public void eu.openanalytics.containerproxy.api.ProxyRouteController.route(javax.servlet.http.H
ttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-04-26 08:26:56.543 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.handle
Error(org.springframework.ui.ModelMap,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-04-26 08:26:56.544 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)
2019-04-26 08:26:56.544 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)
2019-04-26 08:26:56.588 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/assets/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-04-26 08:26:56.589 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-04-26 08:26:56.589 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-04-26 08:26:56.605 INFO 1 --- [main] .m.m.a.ExceptionHandlerExceptionResolver : Detected @ExceptionHandler methods in baseController.RestErrorHandler
2019-04-26 08:26:56.633 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandl
er]
2019-04-26 08:26:56.742 INFO 1 --- [main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index
2019-04-26 08:26:56.845 INFO 1 --- [main] o.s.l.c.support.AbstractContextSource : Property 'userDn' not set - anonymous context will be used for read-write operations
2019-04-26 08:26:57.035 INFO 1 --- [main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2019-04-26 08:26:57.036 INFO 1 --- [main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'dataSource' has been autodetected for JMX exposure
2019-04-26 08:26:57.041 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]
2019-04-26 08:26:57.113 INFO 1 --- [main] o.s.b.w.e.u.UndertowServletWebServer : Undertow started on port(s) 80 (http) with context path ''
2019-04-26 08:26:57.115 INFO 1 --- [main] e.o.c.ContainerProxyApplication : Started ContainerProxyApplication in 5.583 seconds (JVM running for 7.109)
2019-04-26 08:26:57.943 INFO 1 --- [XNIO-2 task-1] io.undertow.servlet : Initializing Spring FrameworkServlet 'dispatcherServlet'
2019-04-26 08:26:57.943 INFO 1 --- [XNIO-2 task-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2019-04-26 08:26:57.960 INFO 1 --- [XNIO-2 task-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 17 ms
2019-04-26 08:27:03.571 INFO 1 --- [XNIO-2 task-3] e.o.containerproxy.service.UserService : User logged in [user: avelt]
2019-04-26 08:27:03.572 INFO 1 --- [XNIO-2 task-3] e.o.containerproxy.service.UserService : User logged in [user: avelt]
2019-04-26 08:27:07.541 INFO 1 --- [XNIO-2 task-7] c.s.docker.client.DefaultDockerClient : Starting container with Id: 51f28bd37cb6de0f288805ad7b89a80514795ba4d65fca8870a2801021bd188b
2019-04-26 08:27:13.543 INFO 1 --- [XNIO-2 task-7] e.o.containerproxy.service.ProxyService : Proxy activated [user: avelt] [spec: GREAT] [id: d03d9a75-90da-4a3a-9209-04a5c00f4d0c]
2019-04-26 08:27:28.910 INFO 1 --- [XNIO-2 task-7] e.o.containerproxy.service.UserService : User logged in [user: larenault]
2019-04-26 08:27:28.910 INFO 1 --- [XNIO-2 task-7] e.o.containerproxy.service.UserService : User logged in [user: larenault]
2019-04-26 08:27:31.207 INFO 1 --- [XNIO-2 task-10] c.s.docker.client.DefaultDockerClient : Starting container with Id: e245431f1b4c074a6afcccefc0035dd1051daae6d0c6c3458c82224bbbede988
2019-04-26 08:27:36.574 INFO 1 --- [XNIO-2 task-10] e.o.containerproxy.service.ProxyService : Proxy activated [user: larenault] [spec: GREAT] [id: 8c4ac299-3fed-4908-a8bd-c6dcbfcd6548]
2019-04-26 08:29:14.886 INFO 1 --- [InactiveProxyKiller] e.o.c.service.HeartbeatService : Releasing inactive proxy [user: avelt] [spec: GREAT] [id: d03d9a75-90da-4a3a-9209-04a5c00f4d0c] [silence: 65859m
s]
2019-04-26 08:29:16.398 INFO 1 --- [pool-2-thread-1] e.o.containerproxy.service.ProxyService : Proxy released [user: avelt] [spec: GREAT] [id: d03d9a75-90da-4a3a-9209-04a5c00f4d0c]
And when I do a “docker container ls” I see the follwing output :
Can the problem be that both containers are running on port 3838 of the server?
Or maybe I have to change the heartbeat option … ?
2019-04-26 08:29:14.886 INFO 1 --- [InactiveProxyKiller] e.o.c.service.HeartbeatService : Releasing inactive proxy [user: avelt] [spec: GREAT] [id: d03d9a75-90da-4a3a-9209-04a5c00f4d0c] [silence: 65859m
s]
I will test that
Edit : I put heartbeat-timeout to 1800000 ms (30 minutes). But I got same problem of grayed screen for one user (but I don’t have the InactiveProxyKiller anymore, in the log).
When the second user logs in, the first user has the screen grayed and when first user click on the analyzes they do not launch anymore. While the second user can use the application without problem, run the analyzes etc … As if the second connection killed the first. When I do docker container ls, the first container is actually killed some time after the second connection, I do not see it anymore.
Here is the complete log :
2019-04-26 08:52:18.437 INFO 1 --- [main] e.o.c.ContainerProxyApplication : Starting ContainerProxyApplication v0.8.1 on b672c46f9f30 with PID 1 (/opt/shinyproxy/shinyproxy.jar started by root in /opt/sh
inyproxy)
2019-04-26 08:52:18.440 INFO 1 --- [main] e.o.c.ContainerProxyApplication : No active profile set, falling back to default profiles: default
2019-04-26 08:52:18.500 INFO 1 --- [main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@614c5515: startup da
te [Fri Apr 26 08:52:18 UTC 2019]; root of context hierarchy
2019-04-26 08:52:19.715 INFO 1 --- [main] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2019-04-26 08:52:20.755 INFO 1 --- [main] org.xnio : XNIO version 3.3.8.Final
2019-04-26 08:52:20.770 INFO 1 --- [main] org.xnio.nio : XNIO NIO Implementation Version 3.3.8.Final
2019-04-26 08:52:20.876 WARN 1 --- [main] io.undertow.websockets.jsr : UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
2019-04-26 08:52:20.877 WARN 1 --- [main] io.undertow.websockets.jsr : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
2019-04-26 08:52:20.903 INFO 1 --- [main] io.undertow.servlet : Initializing Spring embedded WebApplicationContext
2019-04-26 08:52:20.903 INFO 1 --- [main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 2404 ms
2019-04-26 08:52:21.155 INFO 1 --- [main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2019-04-26 08:52:21.156 INFO 1 --- [main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2019-04-26 08:52:21.156 INFO 1 --- [main] .s.DelegatingFilterProxyRegistrationBean : Mapping filter: 'springSecurityFilterChain' to: [/*]
2019-04-26 08:52:21.156 INFO 1 --- [main] o.s.boot.web.servlet.RegistrationBean : Filter orderedHiddenHttpMethodFilter was not registered (disabled)
2019-04-26 08:52:21.156 INFO 1 --- [main] o.s.boot.web.servlet.RegistrationBean : Filter orderedHttpPutFormContentFilter was not registered (disabled)
2019-04-26 08:52:21.157 INFO 1 --- [main] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
2019-04-26 08:52:21.483 INFO 1 --- [main] e.o.c.stat.StatCollectorRegistry : Disabled. Usage statistics will not be processed.
2019-04-26 08:52:21.664 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/css/**'], []
2019-04-26 08:52:21.664 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/img/**'], []
2019-04-26 08:52:21.664 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/js/**'], []
2019-04-26 08:52:21.664 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/assets/**'], []
2019-04-26 08:52:21.664 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/webjars/**'], []
2019-04-26 08:52:21.754 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: org.springframework.security.web.util.matcher.AnyRequestMatcher@1, [org.springframework.security.web.con
text.request.async.WebAsyncManagerIntegrationFilter@3527942a, org.springframework.security.web.context.SecurityContextPersistenceFilter@54a7079e, org.springframework.security.web.header.HeaderWriterFilter@51e69659
, org.springframework.security.web.authentication.logout.LogoutFilter@2dc54ad4, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@73e9cf30, org.springframework.security.web.authe
ntication.www.BasicAuthenticationFilter@942a29c, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@47d9a273, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@
1b11171f, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@1ed6388a, org.springframework.security.web.session.SessionManagementFilter@201a4587, org.springframework.security.web.access.
ExceptionTranslationFilter@71a8adcf, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@54e1c68b]
2019-04-26 08:52:21.780 WARN 1 --- [main] org.thymeleaf.templatemode.TemplateMode : [THYMELEAF][main] Template Mode 'HTML5' is deprecated. Using Template Mode 'HTML' instead.
2019-04-26 08:52:22.138 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@
614c5515: startup date [Fri Apr 26 08:52:18 UTC 2019]; root of context hierarchy
2019-04-26 08:52:22.216 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto private java.lang.Object eu.openanalytics.shinyproxy.controllers.IndexController.index(org.springframework.
ui.ModelMap,javax.servlet.http.HttpServletRequest)
2019-04-26 08:52:22.217 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/issue],methods=[POST]}" onto public java.lang.String eu.openanalytics.shinyproxy.controllers.IssueController.postIss
ue(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-04-26 08:52:22.218 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.sp
ringframework.ui.ModelMap,javax.servlet.http.HttpServletRequest)
2019-04-26 08:52:22.218 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/app_direct/**]}" onto public void eu.openanalytics.shinyproxy.controllers.AppController.appDirect(javax.servlet.http
.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-04-26 08:52:22.219 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.co
ntrollers.AppController.startApp(javax.servlet.http.HttpServletRequest)
2019-04-26 08:52:22.219 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/admin]}" onto private java.lang.String eu.openanalytics.shinyproxy.controllers.AdminController.admin(org.springframe
work.ui.ModelMap,javax.servlet.http.HttpServletRequest)
2019-04-26 08:52:22.222 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)
2019-04-26 08:52:22.222 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxyspec/{proxySpecId}],methods=[GET],produces=[application/json]}" onto public org.springframework.http.Respon
seEntity<eu.openanalytics.containerproxy.model.spec.ProxySpec> eu.openanalytics.containerproxy.api.ProxyController.getProxySpec(java.lang.String)
2019-04-26 08:52:22.223 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxy/{proxySpecId}],methods=[POST],produces=[application/json]}" onto public org.springframework.http.ResponseE
ntity<eu.openanalytics.containerproxy.model.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.startProxy(java.lang.String,java.util.Set<eu.openanalytics.containerproxy.model.runtime.RuntimeSetting
>)
2019-04-26 08:52:22.223 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.opena
nalytics.containerproxy.model.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.startProxy(eu.openanalytics.containerproxy.model.spec.ProxySpec)
2019-04-26 08:52:22.223 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.containerprox
y.model.spec.ProxySpec> eu.openanalytics.containerproxy.api.ProxyController.listProxySpecs()
2019-04-26 08:52:22.224 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.mo
del.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.listProxies()
2019-04-26 08:52:22.224 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxy/{proxyId}],methods=[DELETE],produces=[application/json]}" onto public org.springframework.http.ResponseEnt
ity<java.lang.String> eu.openanalytics.containerproxy.api.ProxyController.stopProxy(java.lang.String)
2019-04-26 08:52:22.225 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/route/**]}" onto public void eu.openanalytics.containerproxy.api.ProxyRouteController.route(javax.servlet.http.H
ttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-04-26 08:52:22.228 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.handle
Error(org.springframework.ui.ModelMap,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-04-26 08:52:22.228 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)
2019-04-26 08:52:22.231 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)
2019-04-26 08:52:22.281 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/assets/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-04-26 08:52:22.281 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-04-26 08:52:22.281 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-04-26 08:52:22.298 INFO 1 --- [main] .m.m.a.ExceptionHandlerExceptionResolver : Detected @ExceptionHandler methods in baseController.RestErrorHandler
2019-04-26 08:52:22.332 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandl
er]
2019-04-26 08:52:22.433 INFO 1 --- [main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index
2019-04-26 08:52:22.513 INFO 1 --- [main] o.s.l.c.support.AbstractContextSource : Property 'userDn' not set - anonymous context will be used for read-write operations
2019-04-26 08:52:22.708 INFO 1 --- [main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2019-04-26 08:52:22.713 INFO 1 --- [main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'dataSource' has been autodetected for JMX exposure
2019-04-26 08:52:22.720 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]
2019-04-26 08:52:22.792 INFO 1 --- [main] o.s.b.w.e.u.UndertowServletWebServer : Undertow started on port(s) 80 (http) with context path ''
2019-04-26 08:52:22.795 INFO 1 --- [main] e.o.c.ContainerProxyApplication : Started ContainerProxyApplication in 5.184 seconds (JVM running for 6.02)
2019-04-26 08:52:22.927 INFO 1 --- [XNIO-2 task-1] io.undertow.servlet : Initializing Spring FrameworkServlet 'dispatcherServlet'
2019-04-26 08:52:22.930 INFO 1 --- [XNIO-2 task-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2019-04-26 08:52:22.947 INFO 1 --- [XNIO-2 task-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 16 ms
2019-04-26 08:52:28.194 INFO 1 --- [XNIO-2 task-3] e.o.containerproxy.service.UserService : User logged in [user: avelt]
2019-04-26 08:52:28.196 INFO 1 --- [XNIO-2 task-3] e.o.containerproxy.service.UserService : User logged in [user: avelt]
2019-04-26 08:52:32.180 INFO 1 --- [XNIO-2 task-6] c.s.docker.client.DefaultDockerClient : Starting container with Id: 5329d8df325664083db1c3ea025df1d69d3e36e3071fae7b7ca491fcdfdc6483
2019-04-26 08:52:38.533 INFO 1 --- [XNIO-2 task-6] e.o.containerproxy.service.ProxyService : Proxy activated [user: avelt] [spec: GREAT] [id: 0256f139-d29b-4aef-baa1-72473af849fa]
2019-04-26 08:52:57.004 INFO 1 --- [XNIO-2 task-10] e.o.containerproxy.service.UserService : User logged in [user: larenault]
2019-04-26 08:52:57.005 INFO 1 --- [XNIO-2 task-10] e.o.containerproxy.service.UserService : User logged in [user: larenault]
2019-04-26 08:52:59.846 INFO 1 --- [XNIO-2 task-11] c.s.docker.client.DefaultDockerClient : Starting container with Id: f9c27524a3bd5e089a5e2e8cd5a00a7d033d5de1396a872abf8e01c73fcc4c1d
2019-04-26 08:53:05.295 INFO 1 --- [XNIO-2 task-11] e.o.containerproxy.service.ProxyService : Proxy activated [user: larenault] [spec: GREAT] [id: b25f2020-e874-4f2d-b310-65943ffc7b93]
Yes, indeed, this is the problem (this can also be seen in the screenshot from the admin panel).
From https://www.shinyproxy.io/configuration/#docker:
when
internal-networking
istrue
, no ports will be allocated per proxy and the port range settings are ignored
Ok, I create the following application.yml file, with the configuration you send me :
proxy:
port: 80
authentication: simple
container-wait-time: 1800000
heartbeat-timeout: 1800000
template-path: ./templates/1col
admin-groups: admins
users:
- name: larenault
password: larenaultadmin
- name: avelt
password: aveltadmin
groups: admins
docker:
cert-path: /home/none
url: http://localhost:2375
port-range-start: 20000
specs:
- id: GREAT
container-cmd: ["R", "-e", ".libPaths(c('/usr/local/lib/R/site-library/','/R-3.5.2/library/'));great::shiny_greatshinyapp()"]
container-image: avelt/great
container-network: sp-example-net
logging:
file:
/logs/shinyproxy.log
I am on Centos7, but I don’t have a file called “/etc/systemd/system/docker.service.d/override.conf”, as in the documentation : https://www.shinyproxy.io/getting-started/#docker-startup-options
So, I modified the file “/lib/systemd/system/docker.service” and replace the ExecStart by your line :
ExecStart=/usr/bin/dockerd -H unix:// -D -H tcp://127.0.0.1:2375
Then I launched :
sudo systemctl daemon-reload
sudo systemctl restart docker
I re-build Shinyproxy, and run it. But I have a connection refused for the port 2375, again. Can you see an error in what I’m doing?
Here the shinyproxy.log :
Caused by: eu.openanalytics.containerproxy.ContainerProxyException: Failed to start container
at eu.openanalytics.containerproxy.backend.AbstractContainerBackend.startProxy(AbstractContainerBackend.java:110) ~[containerproxy-0.8.1.jar!/:0.8.1]
at eu.openanalytics.containerproxy.service.ProxyService.startProxy(ProxyService.java:213) ~[containerproxy-0.8.1.jar!/:0.8.1]
at eu.openanalytics.shinyproxy.controllers.AppController.getOrStart(AppController.java:100) ~[classes!/:2.2.1]
at eu.openanalytics.shinyproxy.controllers.AppController.startApp(AppController.java:68) ~[classes!/:2.2.1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_212]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_212]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_212]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_212]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:870) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:776) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
... 79 common frames omitted
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)
at com.spotify.docker.client.DefaultDockerClient.propagate(DefaultDockerClient.java:2710) ~[docker-client-8.11.2.jar!/:8.11.2]
at com.spotify.docker.client.DefaultDockerClient.request(DefaultDockerClient.java:2652) ~[docker-client-8.11.2.jar!/:8.11.2]
at com.spotify.docker.client.DefaultDockerClient.createContainer(DefaultDockerClient.java:659) ~[docker-client-8.11.2.jar!/:8.11.2]
at com.spotify.docker.client.DefaultDockerClient.createContainer(DefaultDockerClient.java:641) ~[docker-client-8.11.2.jar!/:8.11.2]
at eu.openanalytics.containerproxy.backend.docker.DockerEngineBackend.startContainer(DockerEngineBackend.java:75) ~[containerproxy-0.8.1.jar!/:0.8.1]
at eu.openanalytics.containerproxy.backend.AbstractContainerBackend.doStartProxy(AbstractContainerBackend.java:126) ~[containerproxy-0.8.1.jar!/:0.8.1]
at eu.openanalytics.containerproxy.backend.AbstractContainerBackend.startProxy(AbstractContainerBackend.java:107) ~[containerproxy-0.8.1.jar!/:0.8.1]
... 95 common frames omitted
Caused by: 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 (Conne
ction refused)
at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357) ~[na:1.8.0_212]
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895) ~[na:1.8.0_212]
at com.spotify.docker.client.DefaultDockerClient.request(DefaultDockerClient.java:2650) ~[docker-client-8.11.2.jar!/:8.11.2]
... 100 common frames omitted
Caused by: javax.ws.rs.ProcessingException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:2375 [localhost/127.0.0.1] failed: Connection refused (Connection refused)
at org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:481) ~[jersey-apache-connector-2.22.2.jar!/:na]
at org.glassfish.jersey.apache.connector.ApacheConnector$1.run(ApacheConnector.java:491) ~[jersey-apache-connector-2.22.2.jar!/:na]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_212]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_212]
at jersey.repackaged.com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:299) ~[jersey-guava-2.26-b03.jar!/:na]
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112) ~[na:1.8.0_212]
at jersey.repackaged.com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:50) ~[jersey-guava-2.26-b03.jar!/:na]
at jersey.repackaged.com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:37) ~[jersey-guava-2.26-b03.jar!/:na]
at org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:487) ~[jersey-apache-connector-2.22.2.jar!/:na]
at org.glassfish.jersey.client.ClientRuntime.lambda$null$3(ClientRuntime.java:187) ~[jersey-client-2.26.jar!/:na]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:272) ~[jersey-common-2.26.jar!/:na]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:268) ~[jersey-common-2.26.jar!/:na]
at org.glassfish.jersey.internal.Errors.process(Errors.java:316) ~[jersey-common-2.26.jar!/:na]
at org.glassfish.jersey.internal.Errors.process(Errors.java:298) ~[jersey-common-2.26.jar!/:na]
at org.glassfish.jersey.internal.Errors.process(Errors.java:268) ~[jersey-common-2.26.jar!/:na]
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:312) ~[jersey-common-2.26.jar!/:na]
at org.glassfish.jersey.client.ClientRuntime.lambda$createRunnableForAsyncProcessing$4(ClientRuntime.java:163) ~[jersey-client-2.26.jar!/:na]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_212]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_212]
... 3 common frames omitted
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:2375 [localhost/127.0.0.1] failed: Connection refused (Connection refused)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:159) ~[httpclient-4.5.5.jar!/:4.5.5]
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:373) ~[httpclient-4.5.5.jar!/:4.5.5]
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381) ~[httpclient-4.5.5.jar!/:4.5.5]
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237) ~[httpclient-4.5.5.jar!/:4.5.5]
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185) ~[httpclient-4.5.5.jar!/:4.5.5]
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) ~[httpclient-4.5.5.jar!/:4.5.5]
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111) ~[httpclient-4.5.5.jar!/:4.5.5]
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) ~[httpclient-4.5.5.jar!/:4.5.5]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72) ~[httpclient-4.5.5.jar!/:4.5.5]
at org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:435) ~[jersey-apache-connector-2.22.2.jar!/:na]
... 21 common frames omitted
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_212]
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_212]
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_212]
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_212]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_212]
at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_212]
at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75) ~[httpclient-4.5.5.jar!/:4.5.5]
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) ~[httpclient-4.5.5.jar!/:4.5.5]
... 30 common frames omitted
Hi,
I tried two configurations, one in the “/lib/systemd/system/docker.service” with the following line added :
ExecStart=/usr/bin/dockerd -H unix:// -D -H tcp://127.0.0.1:2375
And one by creating the folder /etc/systemd/system/docker.service.d/, and creating override.conf with following lines :
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H unix:// -D -H tcp://127.0.0.1:2375
I restarted Docker, launched Shinyproxy, but I had the same error :
.....
.....
.....
2019-05-06 13:56:11.506 INFO 1 --- [XNIO-2 task-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 21 ms
2019-05-06 13:56:13.484 INFO 1 --- [XNIO-2 task-3] e.o.containerproxy.service.UserService : User logged in [user: avelt]
2019-05-06 13:56:13.486 INFO 1 --- [XNIO-2 task-3] e.o.containerproxy.service.UserService : User logged in [user: avelt]
2019-05-06 13:56:21.351 ERROR 1 --- [XNIO-2 task-6] io.undertow.request : UT005023: Exception handling request to /app/GREAT
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is eu.openanalytics.containerproxy.ContainerProxyException: Failed to start container
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:986) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:881) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) ~[javax.servlet-api-3.1.0.jar!/:3.1.0]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar!/:3.1.0]
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE
]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) ~[spring-security-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:64) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.PathHandler.handleRequest(PathHandler.java:94) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at eu.openanalytics.containerproxy.util.ProxyMappingManager$ProxyPathHandler.handleRequest(ProxyMappingManager.java:159) ~[containerproxy-0.8.1.jar!/:0.8.1]
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) ~[undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292) [undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81) [undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138) [undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) [undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) [undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) [undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272) [undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) [undertow-servlet-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104) [undertow-servlet-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.HttpServerExchange$1.run(HttpServerExchange.java:830) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_212]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_212]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_212]
Caused by: eu.openanalytics.containerproxy.ContainerProxyException: Failed to start container
at eu.openanalytics.containerproxy.backend.AbstractContainerBackend.startProxy(AbstractContainerBackend.java:110) ~[containerproxy-0.8.1.jar!/:0.8.1]
at eu.openanalytics.containerproxy.service.ProxyService.startProxy(ProxyService.java:213) ~[containerproxy-0.8.1.jar!/:0.8.1]
at eu.openanalytics.shinyproxy.controllers.AppController.getOrStart(AppController.java:100) ~[classes!/:2.2.1]
at eu.openanalytics.shinyproxy.controllers.AppController.startApp(AppController.java:68) ~[classes!/:2.2.1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_212]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_212]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_212]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_212]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:870) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:776) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978) ~[spring-webmvc-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
... 79 common frames omitted
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)
at com.spotify.docker.client.DefaultDockerClient.propagate(DefaultDockerClient.java:2710) ~[docker-client-8.11.2.jar!/:8.11.2]
at com.spotify.docker.client.DefaultDockerClient.request(DefaultDockerClient.java:2652) ~[docker-client-8.11.2.jar!/:8.11.2]
at com.spotify.docker.client.DefaultDockerClient.createContainer(DefaultDockerClient.java:659) ~[docker-client-8.11.2.jar!/:8.11.2]
at com.spotify.docker.client.DefaultDockerClient.createContainer(DefaultDockerClient.java:641) ~[docker-client-8.11.2.jar!/:8.11.2]
at eu.openanalytics.containerproxy.backend.docker.DockerEngineBackend.startContainer(DockerEngineBackend.java:75) ~[containerproxy-0.8.1.jar!/:0.8.1]
at eu.openanalytics.containerproxy.backend.AbstractContainerBackend.doStartProxy(AbstractContainerBackend.java:126) ~[containerproxy-0.8.1.jar!/:0.8.1]
at eu.openanalytics.containerproxy.backend.AbstractContainerBackend.startProxy(AbstractContainerBackend.java:107) ~[containerproxy-0.8.1.jar!/:0.8.1]
... 95 common frames omitted
Caused by: 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 (Conne
ction refused)
......
......
......
I wanted to try following :
But I don’t find how to do that on Centos7 …
Have you an idea about this problem ?
Best,
Amandine
I think I need to take my words back, as this shouldn’t be a problem, sorry for misleading you.
Note that the docker startup options (allowing port 2375) do not apply in your case (running shinyproxy inside container), so the errors above are expected.
Coming back to your original error that the application stops for a user when another user starts the same app: does this also occur in the example apps (available in the example repository that you pulled as described in the first post)?
Ok, I uninstalled Docker and install it to have default parameters. I installed Shinyproxy image and launch a container. I installed your test application and my application.
I try to launch the test app, and now I have a container not responding, what I had not had last time with your test application (which worked very well).
I don’t understand because the container is launched :
But shiny app doesn’t appears in the shinyproxy app :
And I have following message in shinyproxy.log :
019-05-09 08:40:13.908 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto private java.lang.Object eu.openanalytics.shinyproxy.controllers.IndexController.index(org.springframework.
ui.ModelMap,javax.servlet.http.HttpServletRequest)
2019-05-09 08:40:13.909 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/issue],methods=[POST]}" onto public java.lang.String eu.openanalytics.shinyproxy.controllers.IssueController.postIss
ue(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-05-09 08:40:13.911 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.sp
ringframework.ui.ModelMap,javax.servlet.http.HttpServletRequest)
2019-05-09 08:40:13.911 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/app_direct/**]}" onto public void eu.openanalytics.shinyproxy.controllers.AppController.appDirect(javax.servlet.http
.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-05-09 08:40:13.912 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.co
ntrollers.AppController.startApp(javax.servlet.http.HttpServletRequest)
2019-05-09 08:40:13.912 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/admin]}" onto private java.lang.String eu.openanalytics.shinyproxy.controllers.AdminController.admin(org.springframe
work.ui.ModelMap,javax.servlet.http.HttpServletRequest)
2019-05-09 08:40:13.915 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)
2019-05-09 08:40:13.915 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxyspec/{proxySpecId}],methods=[GET],produces=[application/json]}" onto public org.springframework.http.Respon
seEntity<eu.openanalytics.containerproxy.model.spec.ProxySpec> eu.openanalytics.containerproxy.api.ProxyController.getProxySpec(java.lang.String)
2019-05-09 08:40:13.916 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxy/{proxySpecId}],methods=[POST],produces=[application/json]}" onto public org.springframework.http.ResponseE
ntity<eu.openanalytics.containerproxy.model.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.startProxy(java.lang.String,java.util.Set<eu.openanalytics.containerproxy.model.runtime.RuntimeSetting
>)
2019-05-09 08:40:13.916 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.opena
nalytics.containerproxy.model.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.startProxy(eu.openanalytics.containerproxy.model.spec.ProxySpec)
2019-05-09 08:40:13.917 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.containerprox
y.model.spec.ProxySpec> eu.openanalytics.containerproxy.api.ProxyController.listProxySpecs()
2019-05-09 08:40:13.918 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.mo
del.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.listProxies()
2019-05-09 08:40:13.918 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/proxy/{proxyId}],methods=[DELETE],produces=[application/json]}" onto public org.springframework.http.ResponseEnt
ity<java.lang.String> eu.openanalytics.containerproxy.api.ProxyController.stopProxy(java.lang.String)
2019-05-09 08:40:13.919 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/route/**]}" onto public void eu.openanalytics.containerproxy.api.ProxyRouteController.route(javax.servlet.http.H
ttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-05-09 08:40:13.925 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.handle
Error(org.springframework.ui.ModelMap,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-05-09 08:40:13.925 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)
2019-05-09 08:40:13.926 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)
2019-05-09 08:40:13.985 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/assets/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-05-09 08:40:13.985 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-05-09 08:40:13.985 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-05-09 08:40:14.008 INFO 1 --- [main] .m.m.a.ExceptionHandlerExceptionResolver : Detected @ExceptionHandler methods in baseController.RestErrorHandler
2019-05-09 08:40:14.044 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandl
er]
2019-05-09 08:40:14.154 INFO 1 --- [main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index
2019-05-09 08:40:14.237 INFO 1 --- [main] o.s.l.c.support.AbstractContextSource : Property 'userDn' not set - anonymous context will be used for read-write operations
2019-05-09 08:40:14.696 INFO 1 --- [main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2019-05-09 08:40:14.698 INFO 1 --- [main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'dataSource' has been autodetected for JMX exposure
2019-05-09 08:40:14.703 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]
2019-05-09 08:40:14.811 INFO 1 --- [main] o.s.b.w.e.u.UndertowServletWebServer : Undertow started on port(s) 80 (http) with context path ''
2019-05-09 08:40:14.814 INFO 1 --- [main] e.o.c.ContainerProxyApplication : Started ContainerProxyApplication in 5.286 seconds (JVM running for 5.933)
2019-05-09 08:42:24.049 INFO 1 --- [XNIO-2 task-1] io.undertow.servlet : Initializing Spring FrameworkServlet 'dispatcherServlet'
2019-05-09 08:42:24.049 INFO 1 --- [XNIO-2 task-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2019-05-09 08:42:24.070 INFO 1 --- [XNIO-2 task-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 21 ms
2019-05-09 08:42:25.872 INFO 1 --- [XNIO-2 task-3] e.o.containerproxy.service.UserService : User logged in [user: avelt]
2019-05-09 08:42:25.874 INFO 1 --- [XNIO-2 task-3] e.o.containerproxy.service.UserService : User logged in [user: avelt]
2019-05-09 08:42:31.192 INFO 1 --- [XNIO-2 task-6] c.s.docker.client.DefaultDockerClient : Starting container with Id: 6deac7ce77414878586217cdbe342a9e1c9d08a1b7be6311be37f97a29be511b
2019-05-09 08:42:33.493 WARN 1 --- [XNIO-2 task-6] e.o.shinyproxy.ShinyProxyTestStrategy : Container unresponsive, trying again (2/900): http://localhost:20000
2019-05-09 08:42:35.494 WARN 1 --- [XNIO-2 task-6] e.o.shinyproxy.ShinyProxyTestStrategy : Container unresponsive, trying again (3/900): http://localhost:20000
2019-05-09 08:42:37.495 WARN 1 --- [XNIO-2 task-6] e.o.shinyproxy.ShinyProxyTestStrategy : Container unresponsive, trying again (4/900): http://localhost:20000
2019-05-09 08:42:39.496 WARN 1 --- [XNIO-2 task-6] e.o.shinyproxy.ShinyProxyTestStrategy : Container unresponsive, trying again (5/900): http://localhost:20000
...
Here the command to launch Shinyproxy :
docker run -d -v /var/run/docker.sock:/var/run/docker.sock -v /var/Shinyproxy/ShinyProxy-config-examples/02-containerized-docker-engine:/logs --net sp-example-net -p 80:80 shinyproxy
And here the application.yml file :
proxy:
port: 80
authentication: simple
container-wait-time: 1800000
heartbeat-timeout: 1800000
template-path: ./templates/1col
admin-groups: admins
users:
- name: larenault
password: pass1
- name: avelt
password: pass2
groups: admins
specs:
- id: GREAT
container-cmd: ["R", "-e", ".libPaths(c('/usr/local/lib/R/site-library/','/R-3.5.2/library/'));great::shiny_greatshinyapp()"]
container-image: avelt/great
container-network: sp-example-net
- id: 01_hello
display-name: Hello Application
description: Application which demonstrates the basics of a Shiny app
container-cmd: ["R", "-e", "shinyproxy::run_01_hello()"]
container-image: openanalytics/shinyproxy-demo
access-groups: [admins]
logging:
file:
/logs/shinyproxy.log
It seems you are missing
docker:
internal-networking: true
and container-network: sp-example-net
for the “hello” application in your application.yml
…
Sorry, thank you, it works.
So, multiple users can access the Hello application with no problem, with following containers :
But for my app, I connect on the app, then an other people connect, and my screen become grey. Here the containers :
I don’t know where the problem come from.
Here the shinyproxy.log :
2019-05-10 11:41:24.737 INFO 1 — [main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index
2019-05-10 11:41:24.819 INFO 1 — [main] o.s.l.c.support.AbstractContextSource : Property ‘userDn’ not set - anonymous context will be used for read-write operations
2019-05-10 11:41:24.994 INFO 1 — [main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2019-05-10 11:41:24.995 INFO 1 — [main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name ‘dataSource’ has been autodetected for JMX exposure
2019-05-10 11:41:25.006 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]
2019-05-10 11:41:25.078 INFO 1 — [main] o.s.b.w.e.u.UndertowServletWebServer : Undertow started on port(s) 80 (http) with context path ‘’
2019-05-10 11:41:25.082 INFO 1 — [main] e.o.c.ContainerProxyApplication : Started ContainerProxyApplication in 5.084 seconds (JVM running for 5.673)
2019-05-10 11:42:19.442 INFO 1 — [XNIO-2 task-1] io.undertow.servlet : Initializing Spring FrameworkServlet ‘dispatcherServlet’
2019-05-10 11:42:19.442 INFO 1 — [XNIO-2 task-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet ‘dispatcherServlet’: initialization started
2019-05-10 11:42:19.474 INFO 1 — [XNIO-2 task-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet ‘dispatcherServlet’: initialization completed in 32 ms
2019-05-10 11:42:21.711 INFO 1 — [XNIO-2 task-7] e.o.containerproxy.service.UserService : User logged in [user: avelt]
2019-05-10 11:42:21.712 INFO 1 — [XNIO-2 task-7] e.o.containerproxy.service.UserService : User logged in [user: avelt]
2019-05-10 11:42:24.923 INFO 1 — [XNIO-2 task-13] c.s.docker.client.DefaultDockerClient : Starting container with Id: 77f5fe6361293eb6998b1439321c36328d8a35aa9b39bcd55b874fcc6b7c6ad7
2019-05-10 11:42:29.615 INFO 1 — [XNIO-2 task-13] e.o.containerproxy.service.ProxyService : Proxy activated [user: avelt] [spec: GREAT] [id: 2276a713-73ba-48fc-9669-572a870aa705]
2019-05-10 11:42:35.498 INFO 1 — [XNIO-2 task-16] c.s.docker.client.DefaultDockerClient : Starting container with Id: 7bcb5eff959eb7c19672445b575d6287d873d1612512002e1013e421088f0445
2019-05-10 11:42:38.270 INFO 1 — [XNIO-2 task-16] e.o.containerproxy.service.ProxyService : Proxy activated [user: avelt] [spec: 01_hello] [id: 3969ef79-4991-413d-a4f3-32da221c969d]
2019-05-10 11:44:38.459 INFO 1 — [XNIO-2 task-3] e.o.containerproxy.service.UserService : User logged in [user: larenault]
2019-05-10 11:44:38.584 INFO 1 — [XNIO-2 task-3] e.o.containerproxy.service.UserService : User logged in [user: larenault]
2019-05-10 11:44:44.525 INFO 1 — [XNIO-2 task-11] c.s.docker.client.DefaultDockerClient : Starting container with Id: 3fb09d51031495119d80a9fa2cca553439316b7acc31d5f2bb3c71a762de235d
2019-05-10 11:44:50.351 INFO 1 — [XNIO-2 task-11] e.o.containerproxy.service.ProxyService : Proxy activated [user: larenault] [spec: 01_hello] [id: e798886d-90fd-43d0-97bf-3f914935e2ac]
2019-05-10 11:47:28.067 INFO 1 — [XNIO-2 task-16] c.s.docker.client.DefaultDockerClient : Starting container with Id: a55e66b5d643d03624a9aa38a3240390307c2d92feb7983673911ca16f4f175a
2019-05-10 11:47:41.397 INFO 1 — [XNIO-2 task-16] e.o.containerproxy.service.ProxyService : Proxy activated [user: larenault] [spec: GREAT] [id: 2bdfc122-333d-479e-bf18-a63dd23b053a]
2019-05-10 11:50:01.843 INFO 1 — [XNIO-2 task-1] e.o.containerproxy.service.UserService : User logged out [user: larenault]
2019-05-10 11:50:02.786 INFO 1 — [pool-2-thread-1] e.o.containerproxy.service.ProxyService : Proxy released [user: larenault] [spec: 01_hello] [id: e798886d-90fd-43d0-97bf-3f914935e2ac]
2019-05-10 11:50:03.278 INFO 1 — [pool-2-thread-1] e.o.containerproxy.service.ProxyService : Proxy released [user: larenault] [spec: GREAT] [id: 2bdfc122-333d-479e-bf18-a63dd23b053a]
Best,
Amandine
If it works for the test application, it could be something specific to your application, and not the shinyproxy configuration. Checking the container logs may help: you’d need to add
proxy:
container-log-path: /some/path
to your configuration to enable them (see https://www.shinyproxy.io/configuration/#reporting-issues).
Hi,
I don’t understand the problem. I can connect to my application, it works well. Then, a second person connects, my screen becomes gray and the other person can use the application without problems.
Before second connection :
After second connection :
I modified the Shinyproxy configuration to allow container-logs, and I see no error for my application.
Final lines of the logs of the first connection on the app, the application becoming gray :
Stderr :
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
Stdout :
R version 3.5.2 (2018-12-20) -- "Eggshell Igloo"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
Natural language support but running in an English locale
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> .libPaths(c('/usr/local/lib/R/site-library/','/R-3.5.2/library/'));great::shiny_greatshinyapp()
The logs of the second connection are exactly the same, I don’t have any error.
So, I don’t know, maybe there is a problem with the port assigned ? We had discussed together and you proposed me to automatically launch my application on port 3838. There is no problem on this side with the docker version of shinyproxy?
Here is my command in my shiny application package :
shiny_greatshinyapp <- function() { appDir <- system.file("greatshinyapp", package = "great") ;Sys.setlocale('LC_ALL','C');shiny::runApp(appDir, display.mode = "normal", host="0.0.0.0",port = 3838)}
Sorry to bother you with that, and thanks for your help.
Amandine
I don’t think there is a problem with port, as it works in the same way for the test application, and doesn’t cause any issues.
It is strange that you don’t see any error in the container logs. Maybe there are errors in the browser console that shed some light on the issue? Otherwise I am out of suggestions to try.
Really I don’t understand, because my application work well, but when I connect with an other user, the first container is killed, as if my application or shinyproxy doesn’t want to have twop container for this application (but it’s ok for your test app)
I have no idea too, if I ever find a solution I will keep you informed …
Thank you for your help.
Best,
Amandine
Just to resume :
No error in Shinyproxy.log :
2019-05-24 14:25:21.220 INFO 1 --- [main] e.o.c.ContainerProxyApplication : Starting ContainerProxyApplication v0.8.1 on 6a840a5e102c with PID 1 (/opt/shinyproxy/shinyproxy.jar started by root in /opt/shinyproxy)
2019-05-24 14:25:21.223 INFO 1 --- [main] e.o.c.ContainerProxyApplication : No active profile set, falling back to default profiles: default
2019-05-24 14:25:21.323 INFO 1 --- [main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@91161c7: startup date [Fri May
24 14:25:21 UTC 2019]; root of context hierarchy
2019-05-24 14:25:22.781 INFO 1 --- [main] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2019-05-24 14:25:23.819 INFO 1 --- [main] e.o.containerproxy.service.LogService : Container logging enabled. Log files will be saved to /logs/
2019-05-24 14:25:24.124 INFO 1 --- [main] org.xnio : XNIO version 3.3.8.Final
2019-05-24 14:25:24.139 INFO 1 --- [main] org.xnio.nio : XNIO NIO Implementation Version 3.3.8.Final
2019-05-24 14:25:24.307 WARN 1 --- [main] io.undertow.websockets.jsr : UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
2019-05-24 14:25:24.308 WARN 1 --- [main] io.undertow.websockets.jsr : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
2019-05-24 14:25:24.338 INFO 1 --- [main] io.undertow.servlet : Initializing Spring embedded WebApplicationContext
2019-05-24 14:25:24.339 INFO 1 --- [main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 3017 ms
2019-05-24 14:25:24.560 INFO 1 --- [main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2019-05-24 14:25:24.561 INFO 1 --- [main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2019-05-24 14:25:24.562 INFO 1 --- [main] .s.DelegatingFilterProxyRegistrationBean : Mapping filter: 'springSecurityFilterChain' to: [/*]
2019-05-24 14:25:24.562 INFO 1 --- [main] o.s.boot.web.servlet.RegistrationBean : Filter orderedHiddenHttpMethodFilter was not registered (disabled)
2019-05-24 14:25:24.562 INFO 1 --- [main] o.s.boot.web.servlet.RegistrationBean : Filter orderedHttpPutFormContentFilter was not registered (disabled)
2019-05-24 14:25:24.562 INFO 1 --- [main] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
2019-05-24 14:25:24.896 INFO 1 --- [main] e.o.c.stat.StatCollectorRegistry : Disabled. Usage statistics will not be processed.
2019-05-24 14:25:25.047 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/css/**'], []
2019-05-24 14:25:25.048 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/img/**'], []
2019-05-24 14:25:25.048 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/js/**'], []
2019-05-24 14:25:25.048 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/assets/**'], []
2019-05-24 14:25:25.048 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: Ant [pattern='/webjars/**'], []
2019-05-24 14:25:25.141 INFO 1 --- [main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: org.springframework.security.web.util.matcher.AnyRequestMatcher@1, [org.springframework.security.web.context.reque
st.async.WebAsyncManagerIntegrationFilter@16eb3ea3, org.springframework.security.web.context.SecurityContextPersistenceFilter@75437611, org.springframework.security.web.header.HeaderWriterFilter@cb0755b, org.springframework
.security.web.authentication.logout.LogoutFilter@15043a2f, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@cc43f62, org.springframework.security.web.authentication.www.BasicAuthenticatio
nFilter@273444fe, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1c5920df, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@196a42c3, org.springframework.security.we
b.authentication.AnonymousAuthenticationFilter@33bc72d1, org.springframework.security.web.session.SessionManagementFilter@712625fd, org.springframework.security.web.access.ExceptionTranslationFilter@4be29ed9, org.springfram
ework.security.web.access.intercept.FilterSecurityInterceptor@606e4010]
2019-05-24 14:25:25.165 WARN 1 --- [main] org.thymeleaf.templatemode.TemplateMode : [THYMELEAF][main] Template Mode 'HTML5' is deprecated. Using Template Mode 'HTML' instead.
2019-05-24 14:25:25.577 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@91161c7: s
tartup date [Fri May 24 14:25:21 UTC 2019]; root of context hierarchy
2019-05-24 14:25:25.663 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto private java.lang.Object eu.openanalytics.shinyproxy.controllers.IndexController.index(org.springframework.ui.ModelMa
p,javax.servlet.http.HttpServletRequest)
2019-05-24 14:25:25.664 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.s
ervlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-05-24 14:25:25.665 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.springframew
ork.ui.ModelMap,javax.servlet.http.HttpServletRequest)
2019-05-24 14:25:25.665 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/app_direct/**]}" onto public void eu.openanalytics.shinyproxy.controllers.AppController.appDirect(javax.servlet.http.HttpServl
etRequest,javax.servlet.http.HttpServletResponse)
2019-05-24 14:25:25.666 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)
2019-05-24 14:25:25.666 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.Mo
delMap,javax.servlet.http.HttpServletRequest)
2019-05-24 14:25:25.674 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.openan
alytics.containerproxy.model.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.getProxy(java.lang.String)
2019-05-24 14:25:25.675 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<e
u.openanalytics.containerproxy.model.spec.ProxySpec> eu.openanalytics.containerproxy.api.ProxyController.getProxySpec(java.lang.String)
2019-05-24 14:25:25.675 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.o
penanalytics.containerproxy.model.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.startProxy(java.lang.String,java.util.Set<eu.openanalytics.containerproxy.model.runtime.RuntimeSetting>)
2019-05-24 14:25:25.677 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.c
ontainerproxy.model.runtime.Proxy> eu.openanalytics.containerproxy.api.ProxyController.startProxy(eu.openanalytics.containerproxy.model.spec.ProxySpec)
2019-05-24 14:25:25.677 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.sp
ec.ProxySpec> eu.openanalytics.containerproxy.api.ProxyController.listProxySpecs()
2019-05-24 14:25:25.677 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.runtim
e.Proxy> eu.openanalytics.containerproxy.api.ProxyController.listProxies()
2019-05-24 14:25:25.678 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.l
ang.String> eu.openanalytics.containerproxy.api.ProxyController.stopProxy(java.lang.String)
2019-05-24 14:25:25.679 INFO 1 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/route/**]}" onto public void eu.openanalytics.containerproxy.api.ProxyRouteController.route(javax.servlet.http.HttpServlet
Request,javax.servlet.http.HttpServletResponse)
2019-05-24 14:25:25.683 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)
2019-05-24 14:25:25.683 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)
2019-05-24 14:25:25.684 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)
2019-05-24 14:25:25.737 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/assets/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-05-24 14:25:25.738 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-05-24 14:25:25.738 INFO 1 --- [main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-05-24 14:25:25.759 INFO 1 --- [main] .m.m.a.ExceptionHandlerExceptionResolver : Detected @ExceptionHandler methods in baseController.RestErrorHandler
2019-05-24 14:25:25.793 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]
2019-05-24 14:25:25.908 INFO 1 --- [main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index
2019-05-24 14:25:25.996 INFO 1 --- [main] o.s.l.c.support.AbstractContextSource : Property 'userDn' not set - anonymous context will be used for read-write operations
2019-05-24 14:25:26.169 INFO 1 --- [main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2019-05-24 14:25:26.171 INFO 1 --- [main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'dataSource' has been autodetected for JMX exposure
2019-05-24 14:25:26.178 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]
2019-05-24 14:25:26.250 INFO 1 --- [main] o.s.b.w.e.u.UndertowServletWebServer : Undertow started on port(s) 80 (http) with context path ''
2019-05-24 14:25:26.254 INFO 1 --- [main] e.o.c.ContainerProxyApplication : Started ContainerProxyApplication in 5.92 seconds (JVM running for 7.82)
2019-05-24 14:25:33.738 INFO 1 --- [XNIO-2 task-1] io.undertow.servlet : Initializing Spring FrameworkServlet 'dispatcherServlet'
2019-05-24 14:25:33.738 INFO 1 --- [XNIO-2 task-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2019-05-24 14:25:33.766 INFO 1 --- [XNIO-2 task-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 28 ms
2019-05-24 14:25:35.921 INFO 1 --- [XNIO-2 task-3] e.o.containerproxy.service.UserService : User logged in [user: avelt]
2019-05-24 14:25:35.923 INFO 1 --- [XNIO-2 task-3] e.o.containerproxy.service.UserService : User logged in [user: avelt]
2019-05-24 14:25:40.193 INFO 1 --- [XNIO-2 task-6] c.s.docker.client.DefaultDockerClient : Starting container with Id: 26f6223bbc5ead7a4a94fe76beb16a2fc23d0ba3e895002307be495e80a7bac9
2019-05-24 14:25:46.251 INFO 1 --- [XNIO-2 task-6] e.o.containerproxy.service.ProxyService : Proxy activated [user: avelt] [spec: GREAT] [id: eeeac79b-e567-48c0-88b4-604f43fbae71]
2019-05-24 14:26:00.553 INFO 1 --- [XNIO-2 task-9] e.o.containerproxy.service.UserService : User logged in [user: larenault]
2019-05-24 14:26:00.554 INFO 1 --- [XNIO-2 task-9] e.o.containerproxy.service.UserService : User logged in [user: larenault]
2019-05-24 14:26:33.722 INFO 1 --- [XNIO-2 task-8] c.s.docker.client.DefaultDockerClient : Starting container with Id: b1075a949f7e0d8fb9a192425fdd37c81a941f86c81b2b5e8f56cf2444522ed1
2019-05-24 14:26:40.653 INFO 1 --- [XNIO-2 task-8] e.o.containerproxy.service.ProxyService : Proxy activated [user: larenault] [spec: GREAT] [id: 1248c044-b581-421c-af1a-0ba23531de79]
Logs of the first connection on hello application, and the second, they are the same :
Stdout :
R version 3.5.2 (2018-12-20) -- "Eggshell Igloo"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
Natural language support but running in an English locale
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> shinyproxy::run_01_hello()
Stderr :
Loading required package: shiny
Listening on http://0.0.0.0:3838
Logs of the first connection on my application, and the second, they are the same :
Stdout :
R version 3.5.2 (2018-12-20) – “Eggshell Igloo”
Copyright © 2018 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> great::shiny_greatshinyapp()
Stderr :
Loading required package: shiny
Listening on http://0.0.0.0:3838
Loading required namespace: BiocManager
Loading required package: ggplot2
Attaching package: 'plotly'
The following object is masked from 'package:ggplot2':
last_plot
The following object is masked from 'package:stats':
filter
The following object is masked from 'package:graphics':
layout
Attaching package: 'shinyalert'
The following object is masked from 'package:shiny':
runExample
Attaching package: 'shinyjs'
The following object is masked from 'package:shinyalert':
runExample
The following object is masked from 'package:shiny':
runExample
The following objects are masked from 'package:methods':
removeClass, show
Attaching package: 'DT'
The following objects are masked from 'package:shiny':
dataTableOutput, renderDataTable
Loading required package: viridis
Loading required package: viridisLite
======================
Welcome to heatmaply version 0.16.0
Type citation('heatmaply') for how to cite the package.
Type ?heatmaply for the main documentation.
The github page is: https://github.com/talgalili/heatmaply/
Please submit your suggestions and bug-reports at: https://github.com/talgalili/heatmaply/issues
Or contact: <tal.galili@gmail.com>
======================
Loading required package: S4Vectors
Loading required package: stats4
Loading required package: BiocGenerics
Loading required package: parallel
Attaching package: 'BiocGenerics'
The following objects are masked from 'package:parallel':
clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
clusterExport, clusterMap, parApply, parCapply, parLapply,
parLapplyLB, parRapply, parSapply, parSapplyLB
The following object is masked from 'package:heatmaply':
normalize
The following objects are masked from 'package:stats':
IQR, mad, sd, var, xtabs
The following objects are masked from 'package:base':
Filter, Find, Map, Position, Reduce, anyDuplicated, append,
as.data.frame, basename, cbind, colMeans, colSums, colnames,
dirname, do.call, duplicated, eval, evalq, get, grep, grepl,
intersect, is.unsorted, lapply, lengths, mapply, match, mget,
order, paste, pmax, pmax.int, pmin, pmin.int, rank, rbind,
rowMeans, rowSums, rownames, sapply, setdiff, sort, table, tapply,
union, unique, unsplit, which, which.max, which.min
Attaching package: 'S4Vectors'
The following objects are masked from 'package:data.table':
first, second
The following object is masked from 'package:plotly':
rename
The following object is masked from 'package:base':
expand.grid
Loading required package: IRanges
Attaching package: 'IRanges'
The following object is masked from 'package:data.table':
shift
The following object is masked from 'package:plotly':
slice
Loading required package: GenomicRanges
Loading required package: GenomeInfoDb
Loading required package: SummarizedExperiment
Loading required package: Biobase
Welcome to Bioconductor
Vignettes contain introductory material; view with
'browseVignettes()'. To cite Bioconductor, see
'citation("Biobase")', and for packages 'citation("pkgname")'.
Loading required package: DelayedArray
Loading required package: matrixStats
Attaching package: 'matrixStats'
The following objects are masked from 'package:Biobase':
anyMissing, rowMedians
Loading required package: BiocParallel
Attaching package: 'DelayedArray'
The following objects are masked from 'package:matrixStats':
colMaxs, colMins, colRanges, rowMaxs, rowMins, rowRanges
The following objects are masked from 'package:base':
aperm, apply
Attaching package: 'rtracklayer'
The following object is masked from 'package:plotly':
export
Loading required package: e1071
Warning: no DISPLAY variable so Tk is not available
Attaching package: 'DynDoc'
The following object is masked from 'package:rtracklayer':
path
The following object is masked from 'package:DelayedArray':
path
The following object is masked from 'package:BiocGenerics':
path
Loading required package: AnnotationDbi
Attaching package: 'AnnotationDbi'
The following object is masked from 'package:plotly':
select
Loading required package: limma
Attaching package: 'limma'
The following object is masked from 'package:DESeq2':
plotMA
The following object is masked from 'package:BiocGenerics':
plotMA
Attaching package: ‘dplyr’
The following object is masked from ‘package:AnnotationDbi’:
select
The following object is masked from ‘package:widgetTools’:
funs
The following object is masked from ‘package:matrixStats’:
count
The following object is masked from ‘package:Biobase’:
combine
The following objects are masked from ‘package:GenomicRanges’:
intersect, setdiff, union
The following object is masked from ‘package:GenomeInfoDb’:
intersect
The following objects are masked from ‘package:IRanges’:
collapse, desc, intersect, setdiff, slice, union
The following objects are masked from ‘package:S4Vectors’:
first, intersect, rename, setdiff, setequal, union
The following objects are masked from ‘package:BiocGenerics’:
combine, intersect, setdiff, union
The following objects are masked from ‘package:data.table’:
between, first, last
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
But when larenault user connect on my application, the container of avelt user is killed, I don’t know why, I have no errror.
PS : the configuration of my shinyproxy :
proxy:
port: 80
container-log-path: /logs/
support:
mail-to-address: -
authentication: simple
container-wait-time: 1800000
heartbeat-timeout: 1800000
admin-groups: admins
docker:
internal-networking: true
users:
- name: larenault
password: larenaultadmin
groups : password1
- name: avelt
password: password2
groups: admins
specs:
- id: GREAT
display-name: -
description : -
container-cmd: ["R", "-e", "great::shiny_greatshinyapp()"]
container-network: sp-example-net
container-image: avelt/great
- id: 01_hello
display-name: Hello Application
description: Application which demonstrates the basics of a Shiny app
container-cmd: ["R", "-e", "shinyproxy::run_01_hello()"]
container-network: sp-example-net
container-image: openanalytics/shinyproxy-demo
logging:
file:
/logs/shinyproxy.log
The Dockerfile of my application :
FROM rocker/r-ver:3.5.2
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y \
sudo \
gdebi-core \
libc6-dev-i386 \
pandoc \
pandoc-citeproc \
libcurl4-gnutls-dev \
libcairo2-dev \
libxt-dev \
openssl \
libxml2-dev \
libssl-dev \
tcl8.5-dev \
tk8.5-dev \
wget \
build-essential \
fort77 \
xorg-dev \
liblzma-dev libblas-dev gfortran \
gcc-multilib \
gobjc++ \
aptitude \
libreadline-dev \
libbz2-dev \
bzip2 \
xtail \
x11-common \
xserver-xorg \
default-jdk \
qpdf \
libx11-dev \
autotools-dev \
cdbs \
libauthen-sasl-perl \
libfile-basedir-perl \
libfile-desktopentry-perl \
libfile-listing-perl \
libfile-mimeinfo-perl \
libfont-afm-perl \
libhtml-form-perl \
libhtml-format-perl \
libhtml-tree-perl \
libhttp-cookies-perl \
libhttp-daemon-perl \
libhttp-negotiate-perl \
libio-socket-ssl-perl \
libipc-system-simple-perl \
libjpeg-dev \
liblapack-dev \
liblapack3 \
liblwp-protocol-https-perl \
libmailtools-perl \
libncurses5-dev \
libnet-dbus-perl \
libnet-http-perl \
libnet-smtp-ssl-perl \
libnet-ssleay-perl \
libpaper-utils \
libpaper1 \
libtcl8.6 \
libtext-iconv-perl \
libtie-ixhash-perl \
libtk8.6 \
libwww-perl \
libwww-robotrules-perl \
libx11-protocol-perl \
libxml-parser-perl \
libxml-twig-perl \
libxml-xpathengine-perl \
perl-openssl-defaults \
x11-xserver-utils \
xdg-utils \
devscripts \
libdigest-hmac-perl \
libgssapi-perl \
liblapack-doc-man \
liblapack-doc \
libcrypt-ssleay-perl \
ncurses-doc \
tcl8.6 \
tk8.6 \
libauthen-ntlm-perl \
libunicode-map8-perl \
libunicode-string-perl \
xml-twig-tools \
ess \
debhelper \
nickle \
cairo-5c \
xorg-docs-core \
gvfs-bin \
gconf-service \
libasound2 \
libatk1.0-0 \
libcairo2 \
libcups2 \
libfontconfig1 \
libgdk-pixbuf2.0-0 \
libgtk-3-0 \
libnspr4 \
libpango-1.0-0 \
libxss1 \
libgit2-dev \
fonts-liberation \
libappindicator1 \
libnss3 \
lsb-release \
xdg-utils
## packages needed for basic shiny functionality
RUN Rscript -e "install.packages('MASS',repos='https://cloud.r-project.org');install.packages('KernSmooth',repos='https://cloud.r-project.org');install.packages('gplots',repos='https://cloud.r-project.org')
;install.packages('seriation',repos='https://cloud.r-project.org');install.packages('cluster',repos='https://cloud.r-project.org');install.packages('gclus',repos='https://cloud.r-project.org');install.packa
ges(c('XML', 'shinythemes', 'shinyjs','ggplot2','dendextend','seriation','png', 'DT', 'shinycssloaders','data.table','promises','tidyr','dplyr','purrr','httpuv','mime','shinyWidgets','glue','rlang','shinyal
ert'),repos='https://cloud.r-project.org')"
RUN Rscript -e "install.packages('lattice', repos='https://cloud.r-project.org');install.packages('nnet', repos='https://cloud.r-project.org');install.packages('flexmix', repos='https://cloud.r-project.org'
);install.packages('class', repos='https://cloud.r-project.org');install.packages('devtools', repos='https://cloud.r-project.org');library('devtools');devtools::install_github('rstudio/d3heatmap');devtools:
:install_github('talgalili/heatmaply');devtools::install_github('ropensci/plotly')"
RUN Rscript -e 'install.packages("BiocManager")' && \
Rscript -e "library(BiocManager)" && \
Rscript -e "install.packages(c('shiny', 'rmarkdown'), repos='https://cloud.r-project.org')" && \
Rscript -e "install.packages(c('Matrix','cluster'), repos='https://cloud.r-project.org')" && \
Rscript -e "install.packages(c('Matrix','survival'), repos='https://cloud.r-project.org')" && \
Rscript -e "BiocManager::install(c('tkWidgets','widgetTools'),ask=FALSE)" && \
Rscript -e "install.packages('rpart', repos='https://cloud.r-project.org')" && \
Rscript -e "install.packages('Hmisc', repos='https://cloud.r-project.org')" && \
Rscript -e "BiocManager::install(c('S4Vectors','IRanges','GenomicRanges','SummarizedExperiment','Biobase','BiocGenerics','BiocParallel','locfit','geneplotter','RcppArmadillo','annotate','biomaRt','rtracklay
er','genefilter','geneplotter','GenomicFeatures'),ask=FALSE)" && \
Rscript -e "BiocManager::install(c('hexbin','Mfuzz','edgeR'),ask=FALSE)"
RUN Rscript -e "install.packages('https://bioconductor.org/packages/release/bioc/src/contrib/DESeq2_1.24.0.tar.gz',repos = NULL,type = 'source')"
# install great package with great shiny application
COPY great_0.1.0.tar.gz /root/
RUN R CMD INSTALL /root/great_0.1.0.tar.gz
RUN rm /root/great_0.1.0.tar.gz
# set host and port
COPY Rprofile.site /usr/lib/R/etc/
EXPOSE 3838
CMD ["R", "-e great::shiny_greatshinyapp()"]
Hi,
It was a RAM problem, there was not enough RAM on my VM to run my application twice in parallel (because it loads a lot of data).
Thank you for your help, all work fine now.
Best,
Amandine