J'ai construit un serveur de cache APT dans l'article.
Je suis un utilisateur de Python, donc je voulais gagner du temps non seulement avec apt-get install, mais aussi avec le temps de téléchargement de pip install.
devpi-server
Il semble que vous puissiez facilement créer un serveur de cache PyPI en installant un merveilleux paquet appelé devpi-server.
J'ai également décidé d'écrire ceci dans un Dockerfile.
Notez que pip install a un mécanisme de mise en cache local, donc cette méthode est unique. Cela n'a pas beaucoup de sens si vous n'en installez qu'un seul sur le serveur.
--Lors de la récupération de packages individuellement parmi plusieurs instances de serveur --Lorsque la bande de ligne disponible est petite ou limitée
Particulièrement utile pour.
Dockerfile
Vous trouverez ci-dessous le sujet principal du Dockerfile.
Dockerfile
#
# Build:
# docker build -t devpi-server .
#
# Run:
# docker run -d -p 3141:3141 --name devpi-server-run devpi-server
#
FROM ubuntu
EXPOSE 3141
VOLUME ["/var/cache/devpi"]
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && \
apt-get install --no-install-recommends -y python3-pip && \
pip3 install -q -U pip devpi-server
CMD chmod 777 /var/cache/devpi && \
devpi-server \
--serverdir /var/cache/devpi \
--host 0.0.0.0 --port 3141
--trusted-host
Dans le nom d'hôte du serveur de cache,--index-url
Spécifiez l'url du serveur de cache cible avec.
$ pip install --trusted-host XXX.XXX.XXX.XXX --index-url http://XXX.XXX.XXX.XXX:3141/root/pypi/ package-name
Comme vous pouvez le voir sur https://pip.pypa.io/en/latest/user_guide.html#environment-variables, Les options d'installation de pip peuvent également être contrôlées par des variables d'environnement. Dans ce cas, PIP_ a été utilisé comme préfixe et connecté avec des lettres majuscules et des cas de serpent. Spécifié par PIP_TRUSTED_HOST et PIP_INDEX_URL.
Mesuré avec la commande de temps. Je ne l'ai mesuré qu'une seule fois, donc je n'ai pas fait de comparaison stricte, mais j'ai pensé que c'était suffisant. --No-cache-dir est spécifié pour désactiver le cache local.
$ time pip install --no-cache-dir numpy scipy matplotlib pandas ipython
real 3m29.583s
real 0m24.950s
Il y a une grosse différence. J'avais l'impression de passer beaucoup de temps à télécharger scipy et matplotlib, surtout sans le cache.
Recommended Posts