Ich habe im Artikel einen APT-Cache-Server erstellt.
Ich bin ein Python-Benutzer, daher wollte ich nicht nur mit der Installation von apt-get, sondern auch mit der Download-Zeit für die Pip-Installation Zeit sparen.
devpi-server
Es scheint, dass Sie einen PyPI-Cache-Server einfach erstellen können, indem Sie ein wunderbares Paket namens devpi-server installieren.
Ich habe beschlossen, dies auch in die Docker-Datei zu schreiben.
Beachten Sie, dass die Pip-Installation über einen [lokalen Caching-Mechanismus] verfügt (https://pip.pypa.io/en/latest/reference/pip_install.html?highlight=download#caching), sodass diese Methode einfach ist. Es scheint nicht viel Sinn zu machen, wenn Sie nur eine einzige auf dem Server installieren.
Besonders nützlich für.
Dockerfile
Unten ist das Hauptthema der Docker-Datei.
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
Im Hostnamen des Cache-Servers--index-url
Geben Sie die URL des Ziel-Cache-Servers mit an.
$ pip install --trusted-host XXX.XXX.XXX.XXX --index-url http://XXX.XXX.XXX.XXX:3141/root/pypi/ package-name
Wie Sie unter https://pip.pypa.io/en/latest/user_guide.html#environment-variables sehen können, Die Pip-Installationsoptionen können auch durch Umgebungsvariablen gesteuert werden. In diesem Fall wurde PIP_ als Präfix verwendet und mit Großbuchstaben und Schlangenfällen verbunden. Angegeben durch PIP_TRUSTED_HOST und PIP_INDEX_URL.
Gemessen mit dem Zeitbefehl. Ich habe es nur einmal gemessen, also habe ich keinen strengen Vergleich gemacht, aber ich fand, dass es genug war. --No-Cache-Verzeichnis wird angegeben, um den lokalen Cache zu deaktivieren.
$ time pip install --no-cache-dir numpy scipy matplotlib pandas ipython
real 3m29.583s
real 0m24.950s
Es gibt einen großen Unterschied. Ich hatte das Gefühl, viel Zeit damit zu verbringen, scipy und matplotlib herunterzuladen, besonders ohne den Cache.
Recommended Posts