Как устранить отсутствующие зависимости в Docker Alpine
 У меня есть приложение Django, которое прекрасно работает, когда я собираю свой образ docker с помощью python:3.10.0rc2-buster или python:3.10.0rc2-slim-buster без каких-либо проблем.
 Для уменьшения размера изображения я перешел на python:3.10-rc-alpine, однако столкнулся с десятками отсутствующих зависимостей.
Я нашел это сообщение очень полезным Docker Alpine Linux python (отсутствует) Оно позволило мне решить некоторые из отсутствующих зависимостей.
<Вот ошибки отсутствия зависимостей, которые я получаю:
#6 9.141 ERROR: unable to select packages:
#6 9.173   libcairo2 (no such package):
#6 9.173     required by: world[libcairo2]
#6 9.173   libgdk-pixbuf2.0-0 (no such package):
#6 9.173     required by: world[libgdk-pixbuf2.0-0]
#6 9.173   libldap2-dev (no such package):
#6 9.173     required by: world[libldap2-dev]
#6 9.173   libpango-1.0-0 (no such package):
#6 9.173     required by: world[libpango-1.0-0]
#6 9.173   libpangocairo-1.0-0 (no such package):
#6 9.173     required by: world[libpangocairo-1.0-0]
#6 9.173   libsasl2-dev (no such package):
#6 9.173     required by: world[libsasl2-dev]
#6 9.173   libsnmp-dev (no such package):
#6 9.173     required by: world[libsnmp-dev]
#6 9.173   libssl-dev (no such package):
#6 9.173     required by: world[libssl-dev]
#6 9.173   pdftk (no such package):
#6 9.173     required by: world[pdftk]
#6 9.173   python-dev (no such package):
#6 9.173     required by: world[python-dev]
#6 9.173   python3-cffi (no such package):
#6 9.173     required by: world[python3-cffi]
#6 9.173   python3-setuptools (no such package):
#6 9.173     required by: world[python3-setuptools]
#6 9.173   python3-wheel (no such package):
#6 9.173     required by: world[python3-wheel]
#6 9.173   sqlite3 (no such package):
#6 9.173     required by: world[sqlite3]
Это часть моего файла docker:
FROM python:3.10-rc-alpine
RUN apk --no-cache update && \
    apk --no-cache add --update alpine-sdk && \ 
    apk --no-cache add \
    python3 \
    lsof \
    pdftk \
    unixodbc-dev \
    vim \
    git \
    python3-dev \
    python3-setuptools \
    python3-wheel \
    python3-cffi libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 libffi- 
    dev shared-mime-info \
    libsasl2-dev python-dev libldap2-dev libssl-dev libsnmp-dev \
    nginx \
    supervisor \
    sqlite3 && \
    pip3 install -U pip setuptools && \
По крайней мере одна из перечисленных зависимостей не может быть разрешена с помощью официального пакета:
#6 9.173   pdftk (no such package):
#6 9.173     required by: world[pdftk]
Пакет python:3.10-rc-alpine основан на Alpine 3.14.2, но пакет pdftk был удален с версии Alpine 3.9. Однако вы можете попробовать установить pdftk, следуя этому ответу:
https://stackoverflow.com/a/67747061/7256341
.
Это может сработать, если pdftk является зависимостью приложения, а не зависимостью пакета.
Следующие пакеты предоставляются компанией Alpine под разными названиями:
- python-dev->- python3-dev.
- libldap2-dev->- openldap-dev.
- libssl-dev->- openssl-dev
- libsnmp-dev->- net-snmp-dev
- python3-setuptools->- py3-setuptools.
- python3-wheel->- py3-wheel.
- sqlite3->- sqlite.
 Вот те, которые я смог быстро подобрать, используя поиск пакетов Alpine:
https://pkgs.alpinelinux.org/packages
Это отличный и простой в использовании механизм: вы можете искать по имени пакета, используя подстановочные знаки (например, *ldap*-dev) и используя поиск по содержимому для нахождения имен файлов в пакетах. Немного поработав, вы, надеюсь, сможете найти соответствующие пакеты для оставшихся зависимостей. Удачи! 
P.S.: Возможно, это очевидный факт, но обязательно измерьте размер полученного образа Alpine. Ванильный образ очень компактен, но когда вы добавите так много пакетов, уменьшение размера может стать незначительным по сравнению с Debian slim - оно может даже превысить его!