如何用R & Java构建Dockerfile?

问题描述 投票:0回答:1

我试图构建一个运行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新手,希望能得到帮助。

r docker dockerfile rjava
1个回答
1
投票

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-devlibbz2-dev 编译时需要额外的系统依赖性 rJava.

© www.soinside.com 2019 - 2024. All rights reserved.