【问题标题】:How to install R 3.4.4 in alpine如何在高山安装 R 3.4.4
【发布时间】:2019-10-02 12:36:34
【问题描述】:

我正在尝试在我的 docker 高山映像中安装 R。之前我确实使用

将它安装在我的 ubuntu 映像中

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9 \ && add-apt-repository 'deb [arch=amd64,i386] https://cran.rstudio.com/bin/linux/ubuntu xenial/' \ && apt-get update \ && apt-get install -y r-base

我找不到如何在 alpine 中安装它。 任何帮助将不胜感激。

我的基础镜像是 python:3.7-alpine

【问题讨论】:

    标签: r dockerfile alpine


    【解决方案1】:

    R 在 Alpine 社区存储库中可用,因此只需安装正确的 package

    apk add R

    如果您不需要 Python,您可以从原版 Alpine 图像开始,例如 alpine:3.9,以获得更紧凑的图像。

    Alpine 上可用的最新 R 版本是 3.5.1。最接近 3.4.4 的是 3.4.2,它在 Alpine V3.7 中可用。在这种情况下,启动 Alpine V3.7:

    $ docker run -it alpine:3.7 
    / # apk add R
    

    如果您需要 R 版本 3.4.4,您可能必须从源代码构建它。幸运的是,Artem Klevtsov 有一个出色的现成 Dockerfile,它可以做到这一点:
    https://github.com/artemklevtsov/r-alpine/blob/master/release/Dockerfile

    只需将 R 版本字符串替换为 3.4.4 并构建映像 - 效果很好。

    编辑:

    使用特定 R 版本的另一个选项(该版本不适用于本机 Alpine)是在 Alpine 容器上启用 glibc 支持。

    通常,Alpine 建立在 musl libc 之上,这是一个专门的 libc 实现,通常与 glibc 不兼容,glibc 是大多数其他 Linux 发行版使用的事实上的标准 libc。安装 glibc 后,您应该能够在 Alpine 容器上运行任何通用 R Linux 版本。

    以下 Dockerfile 部分将启用 glibc 支持,增加 10MB 到 Alpine 容器大小:

    # Based on: https://github.com/anapsix/docker-alpine-java
    FROM alpine:3.7
    
    ENV GLIBC_REPO=https://github.com/sgerrand/alpine-pkg-glibc
    ENV GLIBC_VERSION=2.28-r0
    
    RUN set -ex && \
        apk --update add libstdc++ curl ca-certificates && \
        for pkg in glibc-${GLIBC_VERSION} glibc-bin-${GLIBC_VERSION}; \
            do curl -sSL ${GLIBC_REPO}/releases/download/${GLIBC_VERSION}/${pkg}.apk -o /tmp/${pkg}.apk; done && \
        apk add --allow-untrusted /tmp/*.apk && \
        rm -v /tmp/*.apk && \
        /usr/glibc-compat/sbin/ldconfig /lib /usr/glibc-compat/lib
    

    【讨论】:

    • 我不特别想要python。我只想在我的高山映像中安装 python 3
    • @HarshitKhetan 很好 - 所以要么像现在一样从 python 映像开始并在顶部安装 R,或者在基于 R 的映像上安装 python - apk add python3
    • 先生,我使用 apk add R 安装。然后我在我的容器中安装 rpy2。它的轮子正在崩溃。它似乎无法找到 R。
    • @MichaelChirico 实际上,只有一部分 R 版本可用于原生 Alpine。但是,glibc 可以通过一个简单的过程在 Alpine 上启用,增加大约 10MB 的图像大小:stackoverflow.com/a/57541576/7256341 然后,您可以安装任何适用于 Linux 的 R 版本。
    • @MichaelChirico 我已经相应地更新了我的答案。
    猜你喜欢
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 2020-08-03
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    相关资源
    最近更新 更多