Есть ли наилучшая практика по настройке glibc на изображении docker alpine linux?

Существует ли наилучшая практика настройки glibc на базовом изображении docker alpine linux с правильными путями, чтобы любой порожденный процесс мог правильно ссылаться на местоположение установленных библиотек libc?

Ответ 1

Да, есть,

Я использовал специально созданный 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

У меня сработало идеально

Ответ 2

Лучше всего не устанавливать glibc на Alpine Linux. Вместо этого он использует musl libc, легкую, быструю, простую и соответствующую стандартам C-библиотеку (т.е. все, чем не является glibc).

Вместо того, чтобы устанавливать glibc на Alpine, соберите и/или упакуйте зависимые программные пакеты и библиотеки для Alpine.

  • Для пакетов python программа setup.py часто перекомпилируется, а не загружает предварительно собранный двоичный файл при запуске на Alpine.

  • Для Java используйте альпийский openjdk вместо Oracle.

  • Для faiss и других numpy-зависимых библиотек в python (скопировано с 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

Ответ 3

apk add libgcc

Похоже, это делает glibc доступным. Это увеличивает размер изображения на несколько МБ.