• R语言软件
  • R shinyproxy docker 部署基础镜像选择问题?

各位大佬,我在shiny部署时选用的基础镜像是shinyproxy-template,代码如下:
FROM openanalytics/shinyproxy-template
LABEL maintainer="zhangzizhou XXXXXX@163.com"
RUN R -e "install.packages(c('caret', 'data.table','waiter','rpart','rpart.plot','ggplot2','ggpmisc','xgboost','DT','treeClust','rmarkdown','readxl','httr','jsonlite','RPostgreSQL'), repos='https://cran.rstudio.com/')"
WORKDIR /app
COPY ./ ./
EXPOSE 3838
CMD ["R", "-e", "shiny::runApp('/app')"]

现在的困扰是每次有新的R包添加时,都需要从头开始编译r包的依赖项,基础镜像linux环境可能缺少很多东西,比如这次安装RPostgreSQL包,则报错
gcc -I"/usr/local/lib/R/include" -DNDEBUG -I -I/usr/local/include -fpic -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c RS-PQescape.c -o RS-PQescape.o
[91mIn file included from RS-PQescape.c:7:
RS-PostgreSQL.h:23:14: fatal error: libpq-fe.h: No such file or directory
   23 | # include "libpq-fe.h"

我怀疑是我选的基础镜像不合适,问问大家有没有合适的镜像供选择。

缺少系统依赖这件事和使用哪个 base image 没有什么关系,因为作为 base image,应该都不会选择去提前安装所有可能的依赖。要自动化大概有两个选择: