无法在docker镜像中安装R包

Taz*_*Taz 5 r ca docker dockerfile r-package

几天以来,我在 docker 镜像构建期间安装 R 包时遇到了问题:

\n\n
> install.packages("devtools", repos = "https://mran.microsoft.com/snapshot/2018-10-25")\nInstalling package into \xe2\x80\x98/usr/local/lib/R/site-library\xe2\x80\x99\n(as \xe2\x80\x98lib\xe2\x80\x99 is unspecified)\nWarning: unable to access index for repository https://mran.microsoft.com/snapshot/2018-10-25/src/contrib:\n  cannot open URL \'https://mran.microsoft.com/snapshot/2018-10-25/src/contrib/PACKAGES\'\n>\n>\nWarning message:\npackage \xe2\x80\x98devtools\xe2\x80\x99 is not available (for R version 3.4.4)\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的Dockerfile

\n\n
FROM rocker/rstudio-stable:3.4.4\n\nMAINTAINER Tazovsky\n\n# system libraries of general use\nRUN apt-get update && apt-get install -y \\\n    sudo \\\n    pandoc \\\n    pandoc-citeproc \\\n    pkg-config \\\n    libnlopt-dev \\\n    libcurl4-gnutls-dev \\\n    libcairo2-dev \\\n    libxt-dev \\\n    libgsl-dev \\\n    libssl-dev \\\n    libssh2-1-dev \\\n    libssl1.0.0 \\\n    libxml2-dev \\\n    openssl\n\nRUN apt-get update && apt-get install -y \\\n    libmpfr-dev\n\nRUN apt-get install libcurl4-openssl-dev -y\n\n# install java\nRUN apt-get update && apt-get install -y openjdk-8-jdk openjdk-8-jre\nRUN R CMD javareconf\n\n# r-java\nRUN apt-get install r-cran-rjava -y\n\nRUN R -e \'install.packages("devtools", repos = "https://mran.microsoft.com/snapshot/2018-10-25")\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

我确信它早些时候就起作用了(几周前)。

\n\n

另外,我检查了命令

\n\n

install.packages("devtools", repos = "https://mran.microsoft.com/snapshot/2018-10-25")

\n\n

在本地并且它有效。

\n\n

我还尝试通过运行添加 CA 证书:

\n\n

本地:

\n\n
openssl genrsa -des3 -out myCA.key 2048\nopenssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem\n
Run Code Online (Sandbox Code Playgroud)\n\n

Dockerfile

\n\n
CP myCA.pem /tmp/myCA.pem\nRUN cd tmp && \\\n    openssl x509 -in myCA.pem -inform PEM -out myCA.crt && \\\n    cp myCA.crt /usr/local/share/ca-certificates/myCA.crt && \\\n    update-ca-certificates && \\\n    rm -rf /tmp/*\n
Run Code Online (Sandbox Code Playgroud)\n\n

但这没有帮助。

\n\n

知道发生了什么事吗?

\n

小智 0

你可以尝试改变(这对我有用)

install.packages("devtools", repos = "https://mran.microsoft.com/snapshot/2018-10-25") 
Run Code Online (Sandbox Code Playgroud)

install.packages("devtools", repos = "http://cran.rstudio.com/")
Run Code Online (Sandbox Code Playgroud)