如何在Docker中为R Shiny应用安装Github软件包?

wbrvyc0a  于 2023-03-17  发布在  Docker
关注(0)|答案(1)|浏览(150)

我组装了一个Shiny App。它使用了a package that I authored,但没有成功地构建一个工作的Docker映像。
我现在使用的代码是:

FROM rocker/r-ver:4.2.2

RUN apt-get update && apt-get install -y \
    libssl-dev \
    libcurl4-gnutls-dev \
    libxml2-dev

RUN R -e 'install.packages(c("shiny","shinyWidgets","ggplot2","lubridate", "remotes"))'
RUN R -e 'remotes::install_github("benyamindsmith/starBliss")'

COPY app.R /app/
WORKDIR /app

EXPOSE 3838

CMD ["R", "-e", "shiny::runApp('/app')"]

它确实成功地生成了。但是,当我运行映像时,我得到了以下消息:

Error in library(starBliss) : there is no package called ‘starBliss’
Calls: <Anonymous> ... sourceUTF8 -> eval -> eval -> ..stacktraceon.. -> library
Execution halted

我已经做了一些调查,但还没有成功地找出为什么构建的映像不能识别它在构建过程中成功安装的starBliss包。
如何在Docker映像中安装Github的存储库,以便在运行时识别它?

hyrbngr7

hyrbngr71#

根据@runr的建议,在Google上搜索了一下,下面是目前可以使用的脚本:

FROM rocker/shiny:latest

RUN apt-get update && apt-get install -y \
    libssl-dev \
    libcurl4-gnutls-dev \
    libxml2-dev \
    libudunits2-dev \
    libgdal-dev

RUN R -e 'install.packages(c("shiny","shinyWidgets","ggplot2","lubridate", "remotes"))'
RUN R -e 'remotes::install_github("benyamindsmith/starBliss")'

COPY app.R /srv/shiny-server/
COPY www /srv/shiny-server/www

EXPOSE 3838

CMD ["R", "-e", "shiny::runApp('/srv/shiny-server/',, host='0.0.0.0', port=3838)"]

相关问题