Existe-t-il une bonne pratique pour configurer glibc sur l'image de base Alpine Linux de docker avec les chemins corrects afin que tout processus généré puisse référencer correctement l'emplacement des bibliothèques libc installées?
Oui il y a,
J'ai utilisé une glibc construite sur mesure pour installer un JRE dessus.
Vous pouvez le trouver ici
Vous pouvez utiliser wget ou curl pour obtenir le code et apk pour les installer
Commandes UPDATED voir les commentaires ci-dessous
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
Cela a fonctionné parfaitement pour moi
La meilleure pratique consiste à installer not glibc sur Alpine Linux. Il utilise musl libc à la place, une bibliothèque C légère, rapide, simple et conforme aux normes (c’est-à-dire tout ce que la glibc n’est pas).
Au lieu d'installer glibc sur Alpine, construisez et/ou compilez vos packages logiciels et bibliothèques dépendants pour Alpine.
Pour les packages python, le programme setup.py recompile souvent, au lieu de télécharger un fichier binaire de pré-construction, lorsqu'il est exécuté sur Alpine.
Pour Java, utilisez Alpine openjdk au lieu d’Oracle.
Pour les bibliothèques de type faiss et autres dépendantes de numpy en python (copié depuis 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
apk add libgcc
Il semble que cela rend glibc
disponible ..__ Cela augmente la taille de l'image de quelques Mo.