r - 无法在docker镜像中安装R包

标签 r docker dockerfile r-package ca

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

> install.packages("devtools", repos = "https://mran.microsoft.com/snapshot/2018-10-25")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning: unable to access index for repository https://mran.microsoft.com/snapshot/2018-10-25/src/contrib:
  cannot open URL 'https://mran.microsoft.com/snapshot/2018-10-25/src/contrib/PACKAGES'
>
>
Warning message:
package ‘devtools’ is not available (for R version 3.4.4)

这是我的Dockerfile:

FROM rocker/rstudio-stable:3.4.4

MAINTAINER Tazovsky

# system libraries of general use
RUN apt-get update && apt-get install -y \
    sudo \
    pandoc \
    pandoc-citeproc \
    pkg-config \
    libnlopt-dev \
    libcurl4-gnutls-dev \
    libcairo2-dev \
    libxt-dev \
    libgsl-dev \
    libssl-dev \
    libssh2-1-dev \
    libssl1.0.0 \
    libxml2-dev \
    openssl

RUN apt-get update && apt-get install -y \
    libmpfr-dev

RUN apt-get install libcurl4-openssl-dev -y

# install java
RUN apt-get update && apt-get install -y openjdk-8-jdk openjdk-8-jre
RUN R CMD javareconf

# r-java
RUN apt-get install r-cran-rjava -y

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

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

此外,我检查了命令

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

在本地并且有效。

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

本地:

openssl genrsa -des3 -out myCA.key 2048
openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem

Dockerfile中:

CP myCA.pem /tmp/myCA.pem
RUN cd tmp && \
    openssl x509 -in myCA.pem -inform PEM -out myCA.crt && \
    cp myCA.crt /usr/local/share/ca-certificates/myCA.crt && \
    update-ca-certificates && \
    rm -rf /tmp/*

但这并没有帮助。

知道发生了什么吗?

最佳答案

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

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

install.packages("devtools", repos = "http://cran.rstudio.com/")

关于r - 无法在docker镜像中安装R包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53969062/

相关文章:

r - 跟踪 R 脚本文件中未编码字符的确切位置

r - 如何将数字向量映射到 R 中的十六进制颜色代码

windows - sbt 在运行 Play docker 容器时下载失败

typescript - 谷歌云构建,引用 monorepo 中的父文件夹

linux - 调用未安装的例程时 Shell 脚本不会失败

php - 为WordPress创建Dockerfile的正确方法

r - R 中二元运算符错误的非数字参数

docker - 如何在运行时读取dockerfile中的值

docker - 在 Dockerfile 中循环/迭代

html - 使用 R 在 imdb 中抓取网页