Is there a best practice on setting up glibc on docker alpine linux base image?

后端 未结 4 1444
感动是毒
感动是毒 2020-12-05 01:47

Is there a best practice on setting up glibc on docker alpine linux base image with correct paths so any spawned process can correctly reference the location of the installe

相关标签:
4条回答
  • 2020-12-05 02:16

    Yes there is,

    I've used a custom built glibc to install a JRE on it.

    You can find it here

    You can use wget or curl to get the code and apk to install them

    UPDATED commands see comments below

    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
    

    It worked perfectly for me

    0 讨论(0)
  • 2020-12-05 02:23

    apk add libgcc

    It seems that this makes glibc available. This increases the size of the image by a few MB.

    0 讨论(0)
  • 2020-12-05 02:28

    I had create a github repo Docker build for glibc for alpine, support multi-arch, i.e. x86_64, aarch64, etc. You can build from the latest glibc source for any CPU type in just one line command. It was forked from sgerrand's repo, I modified to support multi-arch and combine builder stage and packaging stage into one single line. Or you could just download the pre-built packages from release page.

    0 讨论(0)
  • 2020-12-05 02:37

    The best practice is to not install glibc on Alpine Linux. It uses musl libc instead, a lightweight, fast, simple and standards-conform C library (i.e. everything that glibc is not).

    Instead of installing glibc on Alpine, build and/or package your dependent software packages and libraries for Alpine.

    • For python packages, the setup.py program will often recompile, rather than downloading a prebuild binary, when run on Alpine.

    • For java, use alpine openjdk instead of Oracle.

    • For faiss, and other numpy-dependent libraries in python (copied from https://gist.github.com/orenitamar/f29fb15db3b0d13178c1c4dd611adce2)

        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
    
    0 讨论(0)
提交回复
热议问题