web-dev-qa-db-fra.com

Existe-t-il une meilleure pratique pour configurer glibc sur l'image de base du docker Alpine Linux?

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?

18
kai

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

13
carlomas

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
1
Jakub Jirutka

apk add libgcc

Il semble que cela rend glibc disponible ..__ Cela augmente la taille de l'image de quelques Mo.

1
KUNIMI Taiyoh