是否可以将Flexdashboard与Open Analytics golem软件包一起制作为 Shiny 的应用程序?
之后可以将其 docker 化吗?
flexdashboard.Rmd文件的工作流程如何?

到目前为止我的Dockerfile

FROM rocker/shiny-verse:latest

MAINTAINER Tim M.Schendzielorz "[email protected]"

# Install dependencies

RUN  echo 'install.packages(c("dplyr","dbplyr","DBI","DT","plotly","flexdashboard","lubridate"), \
        repos="http://cran.us.r-project.org", \
        dependencies=TRUE)' > /tmp/packages.R \
        && Rscript /tmp/packages.R


# Copy configuration files into the Docker image
COPY shiny-server.conf  /usr/bin/shiny-server.conf
COPY shiny-server.sh  /usr/bin/shiny-server.sh

COPY flexdashboard.Rmd /usr/bin/flexdashboard.Rmd

# make all app files readable (solves issue when dev in Windows, but building in Ubuntu)
RUN chmod -R 755 /usr/bin

# Add shiny user
RUN groupadd  user \
&& useradd --gid user --shell /bin/bash --create-home user

EXPOSE 3838



CMD ["R", "-e rmarkdown::run('/usr/bin/flexdashboard.Rmd')"]

我是Docker的新手,似乎我需要将命令添加到rmarkdown::run,如此处所述在应用程序规范中运行:Deploy Shiny app with Flexdashboard,并使用标准的shell命令启动 Shiny 的服务器?
谢谢Vincent提供的docktorrent,请立即尝试!

最佳答案

仅说明一下,{golem}不是Open Analytics软件包。

要回答“我们可以用golem部署flexdashboard”,是的:

实现您打算执行的操作的最佳方法是将Rmd放入inst/中,然后以这种方式修改run_app:

run_app <- function(...) {
  rmarkdown::run(
    system.file("md.Rmd", package = "mypackage")
  )
}


请注意,对于Docker,如果需要library(mypackage)内部的功能,则必须在Rmd的顶部添加mypackage

这样,您可以将mypackage::run_app()函数用作Docker文件的CMD。

另外,请注意{golem}带有add_dockerfile()函数,该函数将 bundle 安装应用程序所需的所有内容。但这不会将 Shiny 的服务器 bundle 在其中。

请参阅:https://rtask.thinkr.fr/shinyapp-runapp-shinyappdir-difference/,尤其是称为RSTUDIO PRODUCTS 2/2的部分:设置用于测试的发光服务器,以Dockerfile设置golem应用程序+发光服务器的示例。

科林

08-28 11:58