Существует ли наилучшая практика настройки glibc на базовом изображении docker alpine linux с правильными путями, чтобы любой порожденный процесс мог правильно ссылаться на местоположение установленных библиотек libc?
Есть ли наилучшая практика по настройке glibc на изображении docker alpine linux?
Ответ 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
доступным. Это увеличивает размер изображения на несколько МБ.