docker中安装Python和R语言,并指定版本和R包

EN
EN
2024-12-13 / 0 评论 / 50 阅读 / 正在检测是否收录...

最近开发的一个项目,用到了R语言脚本。因为开发环境版本是4.4.2,所以生产环境也要装4.4.2。

本来是这样写的,R语言版本指定不了。不管怎么写版本号 r-base=xxx 都安装不上,说不存在。

# 安装R语言环境(默认是安装的4.2,但是我要装4.4)
RUN apt-get update && apt-get install -y \
    --fix-missing \
    r-base \
    r-cran-devtools \
    build-essential \
    libcurl4-openssl-dev \
    libssl-dev \
    libxml2-dev && \
    rm -rf /var/lib/apt/lists/*

搞不懂,换个思路,直接下载4.2.2版本安装

# 使用 python 3.12 作为基础镜像
FROM python:3.12

# 设置工作目录
WORKDIR /app

# 安装系统依赖和编译工具
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    wget \
    libcurl4-openssl-dev \
    libssl-dev \
    libxml2-dev \
    ca-certificates \
    gfortran \
    && rm -rf /var/lib/apt/lists/*

# 下载并安装 R 4.4.2 源代码
RUN wget https://cran.r-project.org/src/base/R-4/R-4.4.2.tar.gz && \
    tar -xvzf R-4.4.2.tar.gz && \
    cd R-4.4.2 && \
    ./configure && \
    make && \
    make install && \
    cd .. && rm -rf R-4.4.2 R-4.4.2.tar.gz \
    R --version

# 设置 CRAN 镜像源为清华镜像并安装 R 包
RUN echo "options(repos = c(CRAN = 'https://mirrors.tuna.tsinghua.edu.cn/CRAN/'))" > /usr/local/lib/R/etc/Rprofile.site && \
    Rscript -e "install.packages('pheatmap')" && \
    Rscript -e "install.packages('BiocManager')" && \
    echo "options(BioC_mirror = 'https://mirrors.tuna.tsinghua.edu.cn/bioconductor')" >> /usr/local/lib/R/etc/Rprofile.site && \
    Rscript -e "BiocManager::install(version = '3.20')" && \
    Rscript -e "BiocManager::install(c('GEOquery', 'ggplot2', 'readxl', 'readr', 'openxlsx', 'dplyr', 'clusterProfiler', 'limma', 'DESeq2'), ask = FALSE)"


# 进入容器
# 查看R的安装目录:which R
# 查看R版本:R --version  或 Rscript -e "R.version$version.string"
# 查看R镜像:Rscript -e "print(getOption('repos'))"
# 查看BiocManager版本: Rscript -e "packageVersion("BiocManager")"  (BiocManager包的版本号。根据你当前的环境,它可能是通过 CRAN 安装的版本,通常在 1.x 系列)
# 查看Bioconductor版本: Rscript -e "BiocManager::version()"        (Bioconductor的版本。BiocManager 会根据你所安装的 Bioconductor 版本返回一个版本号。Bioconductor 的版本通常是以 3.x 开头的,例如 3.20。Bioconductor 版本是根据 R 版本来决定的,与 CRAN 上的 BiocManager 版本号是分开的。)
# 查看BiocManager镜像: Rscript -e "options('BioC_mirror')"



# 将当前目录的内容复制到容器中
COPY . /app

# 安装 Python 项目所需的依赖
RUN pip install --no-cache-dir  -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
0

评论 (0)

取消