有关在docker alpine linux基础映像上设置glibc的最佳实践吗?

kai*_*kai 31 glibc docker alpine-linux

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

sec*_*tor 28

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

apk add gcompat

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


car*_*mas 24

就在这里,

我使用了自定义构建的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
Run Code Online (Sandbox Code Playgroud)

它对我来说很完美

  • 有关更新的说明,请参阅:https://github.com/sgerrand/alpine-pkg-glibc上述内容将不再有效,因为rsa签名文件已移动. (7认同)

Jak*_*tka 2

最佳实践是不要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
Run Code Online (Sandbox Code Playgroud)

  • 使用 musl_libc 就像 Jeff Bezos 所说,从现在开始亚马逊将只用拉丁语开展业务。 (27认同)
  • 因为没有好的替代方案。Java、Python、Node 等框架需要 glibc,musl 不支持(或者说不支持)。所以要么使用一个大的基础镜像,要么使用 alpine 和移植的 glibc (26认同)