Docker:如何将RCurl安装到Docker容器?

Docker:如何将RCurl安装到Docker容器?,r,docker,installation,rcurl,R,Docker,Installation,Rcurl,我试图安装一个RCurl到Docker容器,是Dockerfile的混音,但失败了。所以 如何将RCurl安装到Docker容器? Dockerfile $ cat Dockerfile FROM r-base RUN apt-get -y install r-base RUN pip install rpy2 RUN apt-get -y install libcurl4-openssl-dev #setup R configs RUN echo "r <- getOption('r

我试图安装一个RCurl到Docker容器,是Dockerfile的混音,但失败了。所以

如何将RCurl安装到Docker容器?

Dockerfile

$ cat Dockerfile 
FROM r-base 
RUN apt-get -y install r-base
RUN pip install rpy2
RUN apt-get -y install libcurl4-openssl-dev
#setup R configs
RUN echo "r <- getOption('repos'); r['CRAN'] <- 'http://cran.us.r-project.org'; options(repos = r);" > ~/.Rprofile
RUN Rscript -e "install.packages('yhatr')"
RUN Rscript -e "install.packages('ggplot2')"
RUN Rscript -e "install.packages('plyr')"
RUN Rscript -e "install.packages('reshape2')"
RUN Rscript -e "install.packages('forecast')"
RUN Rscript -e "install.packages('stringr')"
RUN Rscript -e "install.packages('lubridate')"
RUN Rscript -e "install.packages('randomForest')"
RUN Rscript -e "install.packages('rpart')"
RUN Rscript -e "install.packages('e1071')"
RUN Rscript -e "install.packages('kknn')"
RUN Rscript -e "install.packages('RCurl')"
RUN Rscript -e "install.packages('rjson')"
trying URL 'https://cran.rstudio.com/src/contrib/RCurl_1.95-4.8.tar.gz'
Content type 'application/x-gzip' length 916934 bytes (895 KB)
==================================================
downloaded 895 KB

* installing *source* package ‘bitops’ ...
** package ‘bitops’ successfully unpacked and MD5 sums checked
** libs
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG      -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-3.3.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c bit-ops.c -o bit-ops.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG      -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-3.3.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c cksum.c -o cksum.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-z,relro -o bitops.so bit-ops.o cksum.o -L/usr/lib/R/lib -lR
installing to /usr/local/lib/R/site-library/bitops/libs
** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (bitops)
* installing *source* package ‘RCurl’ ...
** package ‘RCurl’ successfully unpacked and MD5 sums checked
checking for curl-config... no
Cannot find curl-config
ERROR: configuration failed for package ‘RCurl’
* removing ‘/usr/local/lib/R/site-library/RCurl’

The downloaded source packages are in
  ‘/tmp/RtmpJrfUvL/downloaded_packages’
Warning message:
In install.packages("RCurl") :
  installation of package ‘RCurl’ had non-zero exit status
 ---> b8de6bc67379
Removing intermediate container e8c17d0306ef
 #R with RCurl 
 #https://github.com/rocker-org/hadleyverse/blob/master/Dockerfile
 #
 FROM rocker/verse
 MAINTAINER "Carl Boettiger and Dirk Eddelbuettel" rocker-maintainers@eddelbuettel.com

 ## Install some external dependencies. 
 RUN apt-get update \
   && apt-get install -y --no-install-recommends  \
     default-jdk \
     default-jre \
     icedtea-netx \
     libbz2-dev \
     libcairo2-dev \
     libgdal-dev \
     libicu-dev \
     liblzma-dev \
     libproj-dev \
     libgeos-dev \
     libgsl0-dev \
     librdf0-dev \
     librsvg2-dev \
     libv8-dev \
     libxcb1-dev \
     libxdmcp-dev \
     libxslt1-dev \
     libxt-dev \
     mdbtools \
     netcdf-bin \
   && . /etc/environment \
   && install2.r -e -r $MRAN rJava \
   && R CMD javareconf \
   && apt-get clean \
   && rm -rf /var/lib/apt/lists/ \
   && rm -rf /tmp/downloaded_packages/ /tmp/*.rds
 ## tidyverse, devtools and related R packages already inherited from rocker/verse

 ## httr authentication uses this port
 EXPOSE 1410
 ENV HTTR_LOCALHOST 0.0.0.0

Dirk建议从引用hadleyverse内置rocker的二进制文件安装:

Docker image提供哈德利·威克姆的RStudio+rmarkdown/pandoc/latex+R软件包生态系统

因此,除了基本的
RCurl
之外,我们还有很多额外的功能

下面,您从docker映像构建容器,然后从主机的目录启动它,将您留在交互式shell bash中。在那里,您可以使用命令行上的
install.packages('RCurl')
打开
R
会话

$ docker build -t 20170127_r .

$ docker run -v ~/Desktop/20161213_project/:/project -it 20170127_r bash`
Dockerfile

$ cat Dockerfile 
FROM r-base 
RUN apt-get -y install r-base
RUN pip install rpy2
RUN apt-get -y install libcurl4-openssl-dev
#setup R configs
RUN echo "r <- getOption('repos'); r['CRAN'] <- 'http://cran.us.r-project.org'; options(repos = r);" > ~/.Rprofile
RUN Rscript -e "install.packages('yhatr')"
RUN Rscript -e "install.packages('ggplot2')"
RUN Rscript -e "install.packages('plyr')"
RUN Rscript -e "install.packages('reshape2')"
RUN Rscript -e "install.packages('forecast')"
RUN Rscript -e "install.packages('stringr')"
RUN Rscript -e "install.packages('lubridate')"
RUN Rscript -e "install.packages('randomForest')"
RUN Rscript -e "install.packages('rpart')"
RUN Rscript -e "install.packages('e1071')"
RUN Rscript -e "install.packages('kknn')"
RUN Rscript -e "install.packages('RCurl')"
RUN Rscript -e "install.packages('rjson')"
trying URL 'https://cran.rstudio.com/src/contrib/RCurl_1.95-4.8.tar.gz'
Content type 'application/x-gzip' length 916934 bytes (895 KB)
==================================================
downloaded 895 KB

* installing *source* package ‘bitops’ ...
** package ‘bitops’ successfully unpacked and MD5 sums checked
** libs
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG      -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-3.3.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c bit-ops.c -o bit-ops.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG      -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-3.3.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c cksum.c -o cksum.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-z,relro -o bitops.so bit-ops.o cksum.o -L/usr/lib/R/lib -lR
installing to /usr/local/lib/R/site-library/bitops/libs
** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (bitops)
* installing *source* package ‘RCurl’ ...
** package ‘RCurl’ successfully unpacked and MD5 sums checked
checking for curl-config... no
Cannot find curl-config
ERROR: configuration failed for package ‘RCurl’
* removing ‘/usr/local/lib/R/site-library/RCurl’

The downloaded source packages are in
  ‘/tmp/RtmpJrfUvL/downloaded_packages’
Warning message:
In install.packages("RCurl") :
  installation of package ‘RCurl’ had non-zero exit status
 ---> b8de6bc67379
Removing intermediate container e8c17d0306ef
 #R with RCurl 
 #https://github.com/rocker-org/hadleyverse/blob/master/Dockerfile
 #
 FROM rocker/verse
 MAINTAINER "Carl Boettiger and Dirk Eddelbuettel" rocker-maintainers@eddelbuettel.com

 ## Install some external dependencies. 
 RUN apt-get update \
   && apt-get install -y --no-install-recommends  \
     default-jdk \
     default-jre \
     icedtea-netx \
     libbz2-dev \
     libcairo2-dev \
     libgdal-dev \
     libicu-dev \
     liblzma-dev \
     libproj-dev \
     libgeos-dev \
     libgsl0-dev \
     librdf0-dev \
     librsvg2-dev \
     libv8-dev \
     libxcb1-dev \
     libxdmcp-dev \
     libxslt1-dev \
     libxt-dev \
     mdbtools \
     netcdf-bin \
   && . /etc/environment \
   && install2.r -e -r $MRAN rJava \
   && R CMD javareconf \
   && apt-get clean \
   && rm -rf /var/lib/apt/lists/ \
   && rm -rf /tmp/downloaded_packages/ /tmp/*.rds
 ## tidyverse, devtools and related R packages already inherited from rocker/verse

 ## httr authentication uses this port
 EXPOSE 1410
 ENV HTTR_LOCALHOST 0.0.0.0

不清楚哪些软件包足以安装
RCurl

您做错了。安装二进制软件包。看看我们的Rocker项目是做什么的。@DirkEddelbuettel所以根据Rocker手册,我需要在hadleyverse下用这个Dockerfile构建一个容器,它是从安装二进制文件中引用的?不幸的是,hadleyverse wiki是emptySO,是“Rocker”项目的(无数!!)DockerFile,它创建了您开始使用的r-base容器。看看我们做了什么让你的生活更轻松。你应该读到“大量跑步是自找麻烦”