PredictDrug_Rcode / Dockerfile
leonsimon23's picture
Update Dockerfile
8a9542e verified
raw
history blame
2.54 kB
# 使用一个包含 R 和 Tidyverse 的基础镜像
# rocker/tidyverse 包含了许多常用包,但仍需确保所有依赖都存在
FROM rocker/tidyverse:latest
# 设置工作目录
WORKDIR /app
# 复制你的 R 脚本和数据文件到容器中
COPY app.R .
COPY gmqrkl.xlsx .
# 确保系统包更新和安装必要的开发工具(对于 R 包编译可能需要)
# IMPORTANT: Added libpython3-dev for robust Python C-extensions compilation
# Also added build-essential and gfortran which are crucial for pystan/fbprophet
RUN apt-get update && apt-get install -y --no-install-recommends \
sudo \
curl \
libxml2-dev \
libssl-dev \
libcurl4-openssl-dev \
libfontconfig1-dev \
libcairo2-dev \
fonts-wqy-zenhei \
gfortran \
libatlas-base-dev \
libopenblas-dev \
liblapack-dev \
pandoc \
pkg-config \
python3 \
python3-pip \
python3-dev \
build-essential \
# Ensure python development headers are explicitly there
libpython3-dev \
# Added python3-venv and python3-wheel as good practices
python3-venv \
python3-wheel \
&& rm -rf /var/lib/apt/lists/*
# 为 prophet 包安装 Python 依赖
# 注意:Prophet R 包在内部调用了 Python 的 Prophet 库
# 移除了 pip 自身升级的步骤,因为 apt 管理的 pip 不应由 pip 自身升级
# 再次尝试安装 pystan 和 fbprophet,确保所有依赖到位
RUN pip3 install pystan==2.19.1.1 # Pin a specific stable pystan version
RUN pip3 install fbprophet==0.7.1 # Pin a specific stable fbprophet version
# 安装所有必需的 R 包
# 分开安装一些可能相互依赖或安装耗时的包,增加稳定性
# 增加 repos URL,并添加 Ncpus 参数以利用多核加速安装
RUN R -e "install.packages(c('zoo', 'forecast', 'tseries', 'uroot', 'readxl', 'lubridate', 'tidyr'), repos='http://cran.rstudio.com/', Ncpus = `nproc`)"
RUN R -e "install.packages(c('ggplot2', 'dplyr', 'ggpubr', 'patchwork', 'scales'), repos='http://cran.rstudio.com/', Ncpus = `nproc`)"
RUN R -e "install.packages(c('Rcpp', 'RcppArmadillo', 'RcppParallel', 'prophet'), repos='http://cran.rstudio.com/', Ncpus = `nproc`)"
RUN R -e "install.packages(c('parallel', 'doParallel'), repos='http://cran.rstudio.com/', Ncpus = `nproc`)"
# 设置环境变量,确保 R 知道去哪里找字体
ENV R_LIBS_USER=/usr/local/lib/R/site-library
ENV R_GSCMD=/usr/bin/gs
# 设置 LANG 环境变量,确保R能正确处理中文字符
ENV LANG=C.UTF-8
# 运行你的 R 脚本
CMD ["Rscript", "app.R"]