Я довольно новичок в Docker и мне нужно разместить приложение R Shiny на Docker. Любая помощь будет оценена. Пожалуйста, дайте мне знать, если мне нужно что-то изменить в DOckerFile.
R ShinyApp прекрасно работает на локальном компьютере, но падает при использовании Docker для его размещения. Я подозреваю, что что-то не так с взаимодействием fileInput $ datapath и Windows / Docker. Нужно ли указывать PATH в DockerFile?
Я использовал образ рокера / стиха из Docker Hub, установил библиотеки вручную и сохранил изображение локально на моем компьютере как 'r_all_libraries_july2'
Это изображение, которое я использовал в своем DockerFile.
Блестящий код хорошо работает в среде Linux. Но происходит сбой при запуске докера в среде Windows. Временный файл также создается в производственной среде, когда файл вводится в Shiny App с использованием fileInput.
library(shiny)
library(DT)
library(dplyr)
library(shinycssloaders)
library(readxl)
library(shinyjs)
library(ggplot2)
library(png)
library(spatstat)
require(tibble)
require(magrittr)
require(dplyr)
require(multcomp)
require(emmeans)
require(readxl)
library(httr)
require(ggfortify)
library(shinyjs)
library(shinyBS)
ui <-navbarPage(title="RShinyApp", windowTitle = "Data Visualization", theme = shinythemes::shinytheme("cerulean"),selected = "Load Data",
tabPanel(title="Load Data", #3rd Tab Panel Start,
fluidPage(useShinyjs(),
sidebarLayout(
sidebarPanel(
wellPanel(checkboxGroupInput("filetype", "Choose filetype to upload:",
choices = c("CSV"="csv", "Excel"="excel"))),
conditionalPanel(condition = "(input.filetype=='csv')|(input.filetype=='excel')",
wellPanel(checkboxInput(inputId = 'header', label = 'Header', value = FALSE)),
fileInput(inputId = "file", label = "Upload File", accept = c(".csv",".xlsx"))
),#End of conditional panel
uiOutput("sheetnames")
#conditionalPanel(condition = "(input.filetype=='excel')&(!is.null(input.file))",uiOutput("sheetnames")),
),#sidebarpanel
mainPanel(
# h3("Data Table"),
withSpinner(tableOutput("contents"))
)
)#SideBarLayout
)#FluidPage End
) #3rd Tab Panel End
)#navbarpage
server <-function(input,output,session){
###########Load Data Tab#######################
rv<-reactiveValues(data=NULL,xlorcsv=NULL,head=FALSE,sheet=NULL,features=NULL)
observeEvent(input$filetype,{if(input$filetype=='csv'){rv$xlorcsv<-'csv'}
else if(input$filetype=='excel'){rv$xlorcsv<-'excel'}})
observeEvent(input$header, rv$head<-input$header)
observeEvent(input$sheetnames,rv$sheet<-input$sheetnames)
observeEvent(input$file,
{if((!is.null(rv$xlorcsv))&(!is.null(input$file))){
#####THIS IS WHERE THE SHINY APP IS CRASHING IN DOCKER--my guess is datapath ###########needs to be defined here
if(rv$xlorcsv=='csv'){rv$data<-read.csv(input$file$datapath, header = rv$head, na.strings = "")
rv$features<-colnames(rv$data)}
}
})
output$sheetnames<-renderUI({
if((is.null(rv$xlorcsv))|(is.null(input$file))){return(NULL)}
if((rv$xlorcsv=='excel')&(!is.null(input$file))){selectInput("sheetnames","Select sheet to load",choices = excel_sheets(path = input$file$datapath))}
})
output$contents<-renderTable({rv$data})
}
shinyApp(server=server, ui=ui)
DockerFile:
FROM r_all_libraries:latest
EXPOSE 80
COPY r_shiny_code_working11.R /home/rstudio/r_shiny_code_working11.R
CMD ["/home/rstudio/r_shiny_code_working11.R"]
Это ошибка на консоли:
standard_init_linux.go:207: exec user process caused "no such file or directory"