leonsimon23 commited on
Commit
9dfbc59
·
verified ·
1 Parent(s): 4dbd12c

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +41 -17
Dockerfile CHANGED
@@ -1,5 +1,5 @@
1
- # 使用一个包含 R 的基础镜像
2
- # 你可以使用 rocker/r-base 或 rocker/tidyverse 等预构建的 R 镜像
3
  FROM rocker/tidyverse:latest
4
 
5
  # 设置工作目录
@@ -7,26 +7,50 @@ WORKDIR /app
7
 
8
  # 复制你的 R 脚本和数据文件到容器中
9
  COPY app.R .
10
- COPY gmqrkl.xlsx .
11
 
12
- # 安装所有必需的 R
13
- # RUN 命令中一次性安装所有包,可以减少 Docker 镜像层数
14
- # 使用 apt-get 安装系统级别的依赖(例如 r-cran-rjava 如果你需要)
15
- # 这里我们只安装 R 包
16
- RUN R -e "install.packages(c('zoo', 'forecast', 'tseries', 'ggplot2', 'uroot', 'readxl', 'dplyr', 'lubridate', 'prophet', 'ggpubr', 'patchwork', 'scales', 'parallel', 'doParallel', 'Rcpp', 'RcppArmadillo', 'RcppParallel'), repos='http://cran.rstudio.com/')"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
- # 针对 prophet 包的额外依赖(如果遇到问题,可能需要手动安装这些)
19
- # RUN R -e "install.packages('Rcpp', repos='http://cran.rstudio.com/')"
20
- # RUN R -e "install.packages('RcppArmadillo', repos='http://cran.rstudio.com/')"
21
- # RUN R -e "install.packages('RcppParallel', repos='http://cran.rstudio.com/')"
 
 
 
22
 
23
- # 如果你的代码需要特殊字体来显示中文,可以安装字体
24
- # RUN apt-get update && apt-get install -y fonts-wqy-zenhei
25
 
26
  # 设置环境变量,确保 R 知道去哪里找字体(如果安装了)
27
- # ENV R_LIBS_USER=/usr/local/lib/R/site-library
28
- # ENV R_GSCMD=/usr/bin/gs # For ghostscript, sometimes needed for ggplot2 output
 
 
29
 
30
  # 运行你的 R 脚本
31
- # 如果你的 R 脚本会生成文件(如图片),请确保它们保存在 /app 目录下
32
  CMD ["Rscript", "app.R"]
 
1
+ # 使用一个包含 R 和 Tidyverse 的基础镜像
2
+ # rocker/tidyverse 包含了许多常用包,但仍需确保所有依赖都存在
3
  FROM rocker/tidyverse:latest
4
 
5
  # 设置工作目录
 
7
 
8
  # 复制你的 R 脚本和数据文件到容器中
9
  COPY app.R .
10
+ COPY COPY gmqrkl.xlsx .
11
 
12
+ # 确保系统包更新和安装必要的开发工具(对于 R 包编译可能需要)
13
+ RUN apt-get update && apt-get install -y \
14
+ sudo \
15
+ curl \
16
+ libxml2-dev \
17
+ libssl-dev \
18
+ libcurl4-openssl-dev \
19
+ libfontconfig1-dev \
20
+ libcairo2-dev \
21
+ fonts-wqy-zenhei \
22
+ gfortran \
23
+ libatlas-base-dev \
24
+ libopenblas-dev \
25
+ liblapack-dev \
26
+ pandoc \
27
+ pandoc-citeproc \
28
+ pkg-config \
29
+ # fbprophet 的 Python 依赖可能需要
30
+ python3 \
31
+ python3-pip \
32
+ python3-dev \
33
+ build-essential \
34
+ && rm -rf /var/lib/apt/lists/*
35
+
36
+ # 为 prophet 包安装 Python 依赖
37
+ # 注意:Prophet R 包在内部调用了 Python 的 Prophet 库
38
+ RUN pip3 install pystan fbprophet
39
 
40
+ # 安装所有必需的 R
41
+ # 分开安装一些可能相互依赖或安装耗时的包,增加稳定性
42
+ # 增加 repos URL,并添加 Ncpus 参数以利用多核加速安装
43
+ RUN R -e "install.packages(c('zoo', 'forecast', 'tseries', 'uroot', 'readxl', 'lubridate', 'tidyr'), repos='http://cran.rstudio.com/', Ncpus = `nproc`)"
44
+ RUN R -e "install.packages(c('ggplot2', 'dplyr', 'ggpubr', 'patchwork', 'scales'), repos='http://cran.rstudio.com/', Ncpus = `nproc`)"
45
+ RUN R -e "install.packages(c('Rcpp', 'RcppArmadillo', 'RcppParallel', 'prophet'), repos='http://cran.rstudio.com/', Ncpus = `nproc`)"
46
+ RUN R -e "install.packages(c('parallel', 'doParallel'), repos='http://cran.rstudio.com/', Ncpus = `nproc`)"
47
 
 
 
48
 
49
  # 设置环境变量,确保 R 知道去哪里找字体(如果安装了)
50
+ ENV R_LIBS_USER=/usr/local/lib/R/site-library
51
+ ENV R_GSCMD=/usr/bin/gs # For ghostscript, sometimes needed for ggplot2 output
52
+ # 设置 LANG 环境变量,确保R能正确处理中文字符
53
+ ENV LANG=C.UTF-8
54
 
55
  # 运行你的 R 脚本
 
56
  CMD ["Rscript", "app.R"]