我在尝试通过dockerfile将R加载到我的Docker容器中。某些R包无法成功安装,例如rvest
。我同时也在安装NiFi和Python。以下是我的dockerfile:
FROM apache/nifi
ADD run.sh .
COPY nifi-extracttext-nar-1.5.nar /opt/nifi/nifi-1.8.0/lib
USER root
RUN apt-get update
RUN apt-get install -y python3 python3-dev python3-pip
RUN pip3 install bs4
RUN pip3 install requests
RUN chmod 777 run.sh
# PROBLEM AREA (everything above works great)
RUN apt-get -y install r-base
RUN apt-get -y install libcurl4-openssl-dev
RUN apt-get install libcurl4-openssl-dev
#setup R configs
FROM r-base:latest
RUN Rscript -e "install.packages('tidyverse', repos = 'http://cran.us.r-project.org')"
RUN Rscript -e "install.packages('httr', repos = 'http://cran.us.r-project.org')"
RUN Rscript -e "install.packages('rvest', repos = 'http://cran.us.rproject.org')"
USER nifi
ENTRYPOINT ["./run.sh"]
问题点肯定是安装R本身以及我想要的软件包。如何正确格式化R软件包安装?我最初从此链接中提取了格式,但不确定
Rscript
是否正确。在这里,
rvest
似乎是一个特别棘手的问题。更新:
当我尝试在docker构建/运行后运行我的脚本时,我得到了这个错误:
Error in library(httr) : there is no package called ‘httr’
Execution halted
ERROR: dependency ‘openssl’ is not available for package ‘httr’
* removing ‘/usr/local/lib/R/site-library/httr’
为什么会发生这种情况?我是通过docker安装的。
以下是一些错误信息:
The downloaded source packages are in
'/tmp/RtmpykICxP/downloaded_packages'
Warning messages:
1: In install.packages("rvest", repos = "http://cran.us.r-project.org") :
installation of package 'openssl' had non-zero exit status
2: In install.packages("rvest", repos = "http://cran.us.r-project.org") :
installation of package 'xml2' had non-zero exit status
3: In install.packages("rvest", repos = "http://cran.us.r-project.org") :
installation of package 'httr' had non-zero exit status
4: In install.packages("rvest", repos = "http://cran.us.r-project.org") :
installation of package 'rvest' had non-zero exit status
And:
ERROR: configuration failed for package ‘xml2’
* removing ‘/usr/local/lib/R/site-library/xml2’
ERROR: dependency ‘openssl’ is not available for package ‘httr’
* removing ‘/usr/local/lib/R/site-library/httr’
ERROR: dependencies ‘xml2’, ‘httr’ are not available for package ‘rvest’
* removing ‘/usr/local/lib/R/site-library/rvest’
And:
ERROR: dependencies ‘xml2’, ‘httr’ are not available for package ‘rvest’
在通过终端爬行并构建图像后,我发现了这些错误。
RUN apt-get install libcurl4-openssl-dev
行吗?我指的是第二行。另外,我需要保留FROM r-base:latest
吗?非常感谢您的帮助。 - papelr