66

是否有使用正确路径在 docker alpine linux 基础映像上设置 glibc 的最佳实践,以便任何生成的进程都可以正确引用已安装的 libc 库的位置?

4

4 回答 4

52

就在这里,

我使用自定义构建的 glibc 在其上安装 JRE。

你可以在这里找到

您可以使用 wget 或 curl 获取代码和 apk 来安装它们

更新的命令见下面的评论

apk --no-cache add ca-certificates wget
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.28-r0/glibc-2.28-r0.apk
apk add glibc-2.28-r0.apk

它对我来说非常有效

于 2016-07-18T09:41:12.600 回答
16

到目前为止,每次安装 glibc 兼容性库都对我有用

apk add gcompat

https://pkgs.alpinelinux.org/package/edge/community/x86_64/gcompat

于 2021-07-07T10:28:08.690 回答
6

最佳实践是不在Alpine Linux 上安装 glibc。它使用musl libc代替,这是一个轻量级、快速、简单且符合标准的 C 库(即 glibc 所不具备的一切)。

不要在 Alpine 上安装 glibc,而是为 Alpine 构建和/或打包您依赖的软件包和库。

    FROM alpine:3.4
    RUN echo "http://dl-cdn.alpinelinux.org/alpine/latest-stable/main" > /etc/apk/repositories
    RUN echo "http://dl-cdn.alpinelinux.org/alpine/latest-stable/community" >> /etc/apk/repositories
    RUN apk --no-cache --update-cache add gcc gfortran python python-dev py-pip build-base wget freetype-dev libpng-dev openblas-dev
    RUN ln -s /usr/include/locale.h /usr/include/xlocale.h
    RUN pip install numpy scipy pandas matplotlib
于 2016-06-15T12:06:56.953 回答
2

我已经为 alpine 的 glibc 创建了一个 github repo Docker 构建,支持多架构,即 x86_64、aarch64 等。您可以通过一行命令从最新的 glibc 源构建任何 CPU 类型。它是从sgerrand 的 repo中分叉出来的,我进行了修改以支持多架构并将构建阶段和打包阶段组合成一条线。或者你可以从发布页面下载预构建的包。

于 2020-01-22T11:30:32.990 回答