想请教下大家用Dockerfile的安装R包时候会不会经常遇到网络问题啊。有什么好的解决办法吗?(docker需要装很多bioconductor包,方便集群其他用户调用)
Dokerfile
FROM rocker/tidyverse:4.0.4
RUN Rscript install_rpkgs.R && rm install_rpkgs.R
install_rpkgs.R脚本
library(BiocManager)
options(repos = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
install_cran <- function(pkg,try_install_number = 2) {
for (i in seq(1:try_install_number)) {
if (!requireNamespace(pkg,quietly = T)) {
install.packages(pkg,quiet = T)
}
}
if (!requireNamespace(pkg))stop(paste0(pkg,":下载失败!"))
}
install_bio <- function(pkg,try_install_number = 2) {
for (i in seq(1:try_install_number)) {
if (!requireNamespace(pkg,quietly = T)) {
BiocManager::install(pkg,update = F)
}
}
if (!requireNamespace(pkg))stop(paste0(pkg,":下载失败!"))
}
install_bio('GenomicRanges')
install_bio('org.Hs.eg.db')
install_bio('clusterProfiler')
install_bio('DOSE')
install_bio('topGO')
install_bio("ComplexHeatmap")
install_cran("rmarkdown")