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()"]