Je suis en train de construire une image d'Alpine: 3.7.
Il y a deux packages avec lesquels j'ai des problèmes:
L'erreur que je reçois est:
Impossible de trouver une version qui satisfait à l'exigence setuptools (à partir des versions:) Aucune distribution correspondante trouvée pour setuptools
Remarque: tous les packages sont pré-mis en cache sur un répertoire à l'aide du téléchargement pip.
Le dockerfile se présente comme suit:
RUN apk add --no-cache --virtual .build-deps <dev packages>
&& apk add --no-cache --update python3
&& pip3 install --upgrade pip setuptools
RUN pip3 install -f ./python-packages --no-index -r requirements.txt ./python-packages/pkgs
....
packages de développement tels que libffi-dev, libressl-dev, etc.
Apparemment, lors de la mise à niveau de pip avec:
pip3 install --upgrade pip setuptools
J'ai supprimé la mise à niveau de pip et l'installation a fonctionné. Maintenant, j'ai recherché la bonne façon de mettre à jour pip sur Alpine et j'ai trouvé un Dockerfile dans un github repo qui fait cette vérification:
if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \
Ce qui garantit que pip3 est référé lors de l'appel de la commande juste pip par faire un lien symbolique sur python et les répertoires des binaires système.
Je ne suis pas sûr de la liste complète des packages de développement à construire dans la question, mais elle devrait être la suivante: g++
(Bibliothèque et compilateur standard GNU C++), python3-dev
(fichiers de développement python3), libffi-dev
(fichiers de développement libffi) et openssl-dev
(Boîte à outils pour les fichiers de développement SSL v2/v3 et TLS v1).
Dockerfile
est:
FROM Alpine:3.7
RUN apk add --no-cache --virtual .build-deps g++ python3-dev libffi-dev openssl-dev && \
apk add --no-cache --update python3 && \
pip3 install --upgrade pip setuptools
RUN pip3 install pendulum service_identity