Har*_*tan 4 r dockerfile alpine-linux
我正在尝试在我的 docker 高山映像中安装 R。早些时候我确实使用
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 在 Alpine 社区存储库中可用,因此只需安装正确的软件包:
apk add R
对于更紧凑的图像alpine:3.9,如果您不需要 Python,您可以从普通的 Alpine 图像开始,例如。
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
Run Code Online (Sandbox Code Playgroud)
如果您完全需要 R 版本 3.4.4,则可能必须从源代码构建它。幸运的是,Artem Klevtsov 提供了一个出色的现成 Dockerfile,它可以做到这一点:https :
//github.com/artemklevtsov/r-alpine/blob/master/release/Dockerfile
只需将 R 版本字符串替换为 3.4.4 并构建映像 - 效果很好。
编辑:
使用特定 R 版本的另一个选项是在 Alpine 容器上启用glibc支持,该版本不适用于本机 Alpine 。
通常,Alpine 构建在musl libc之上,它是一个专门的libc实现,通常与 glibc 不兼容,glibc 是大多数其他 Linux 发行版使用的事实上的标准 libc。安装 glibc 后,您应该能够在 Alpine 容器上运行任何通用 R Linux 构建。
以下 Dockerfile 部分将启用 glibc 支持,为 Alpine 容器大小增加约 10MB:
# 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2751 次 |
| 最近记录: |