docker compose up -d
# shut down
# docker compose downdependencies.R- 依赖配置文件,在这里添加你需要的 R 包init.sh- 初始化脚本(在容器启动时运行)
编辑 dependencies.R,在 cran_packages 向量中添加包名:
https://rocker-project.org/images/versioned/shiny.html 默认使用 shiny-verse 基础镜像,已经安装了很多基础依赖包。
cran_packages <- c(
"ggplot2",
"dplyr",
"lubridate"
)编辑 dependencies.R,在 github_packages 向量中添加包(格式:username/repo):
github_packages <- c(
"tidyverse/ggplot2",
"rstudio/shiny"
)编辑 dependencies.R,在 bioconductor_packages 向量中添加包名:
bioconductor_packages <- c(
"Biobase",
"limma"
)docker compose exec shiny-server Rscript /scripts/dependencies.R修改 docker-compose.yml 添加入口点:
services:
shiny-server:
image: rocker/shiny-verse:latest
# ... 其他配置 ...
command: ["/scripts/init.sh", "/init"]然后重启:
docker compose down && docker compose up -d- ✅ 自动跳过已安装的包
- ✅ 支持 CRAN、GitHub、Bioconductor 三种来源
- ✅ 包安装到
/usr/local/lib/R/extra-library(持久化到本地 r-libs 目录) - ✅ 每次启动只安装缺失的包,节省时间