我试图构建一个运行R与包RJava的Docker容器。我已经尝试了以下代码。
# Install R version 3.6.3
FROM rocker/tidyverse:3.6.3
# Make ~/.R
RUN mkdir -p $HOME/.R
# Install Ubuntu packages && then R packages
RUN install2.r --error \
lubridate magrittr RPostgres DBI broom rlang rJava
但是我得到了以下信息:安装包'rJava'有非零的退出状态。
谁能帮我解决这个问题。我在想,也许是因为Java没有安装。有人知道如何在这个docker容器上安装Java吗?
我试着将以下内容添加到我的dockerfile中,就像我发现的另一个帖子一样,但是我得到的错误是 "仓库''。http:/ppa.launchpad.netwebupd8teamjavaubuntu。 focal Release "没有Release文件。
# Install "software-properties-common" (for the "add-apt-repository")
RUN apt-get update && apt-get install -y \
software-properties-common
# Add the "JAVA" ppa
RUN add-apt-repository -y \
ppa:webupd8team/java
# Install OpenJDK-8
RUN apt-get update && \
apt-get install -y openjdk-8-jdk && \
apt-get install -y ant && \
apt-get clean;
# Fix certificate issues
RUN apt-get update && \
apt-get install ca-certificates-java && \
apt-get clean && \
update-ca-certificates -f;
# Setup JAVA_HOME -- useful for docker commandline
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME
我是docker新手,希望能得到帮助。
在 rocker
图像是基于 debian
,不 ubuntu
. 具体而言,它是 Debian GNU/Linux 10 (buster)
. 有了这个版本,你可以安装 java
通过安装软件包 openjdk-11-jdk
通过 apt
而你不需要为它添加任何存储库。openjdk-8-jdk
.
因此,一个工作的docker文件,安装了 rJava
:
FROM rocker/tidyverse:3.6.3
RUN apt-get update && \
apt-get install -y openjdk-11-jdk && \
apt-get install -y liblzma-dev && \
apt-get install -y libbz2-dev
RUN Rscript -e "install.packages('rJava')"
注意到。liblzma-dev
和 libbz2-dev
编译时需要额外的系统依赖性 rJava
.