r - 如何使用 R & Java 构建 Dockerfile
问题描述
我正在尝试构建一个使用 RJava 包运行 R 的 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.net/webupd8team/java/ubuntu焦点版本没有发布文件:
# 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
所以一个工作的 dockerfile 安装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
。
推荐阅读
- torch - 使用 cuda 10.1 安装 torch_geometric 及其依赖项
- javascript - 在 React 中给定时间后更新时间戳文本
- python - 如何在并行进程(python-asyncio)中将项目附加到列表中?
- php - 我们计算的请求签名与您提供的签名不匹配。在 php 中检查您的 AWS 秘密访问密钥和签名方法
- php - 发布新产品时如何获取 woocommerce 产品的所有详细信息?
- r - 有没有办法从 shinyapp.io 链接找到 R 代码?
- c++ - xcode 13 无法编译某些函数 c++
- python - 使用类中的函数关闭弹出窗口(kivy)
- sql - 有没有办法在忽略 Spring Boot 中的外键检查的同时截断表?
- anylogic - 步行图书馆的资源可用性