Nach Erstellen eines Apt-Cache-Servers in QNAP Erstellen Sie einen Pypi-Cache-Server als Docker-Container auf dem NAS von QNAP. Wir wollen Pips beschleunigen und den Verkehr im LAN reduzieren.
Verwenden Sie devpi server als Cache-Server für Pipit. Suchen Sie nach dem Devpi-Image, da es von Docker betrieben wird. Beispielsweise wurde Scrapinghub / Docker-Devpi gefunden.
Wie in Letztes Mal erwähnt, war das vorliegende NAS ARM-basiert. Daher wurde ein Devpi-Image für ARM separat erstellt. Die Docker-Datei des erstellten Bildes ist GitHub und das Bild ist DockerHub. Es befindet sich in / r / jkawamoto / armhf-devpi-server /).
Container Station wird zum Verwalten des Containers verwendet. Wenn nicht, installieren Sie es über das App Center. Das Handbuch zur Container Station finden Sie unter hier.
Suchen Sie auf der Registerkarte Containererstellung nach dem zu verwendenden Containerbild. Standardmäßig ist das Bild auf DockerHub verfügbar.
Wenn Sie das gewünschte Image gefunden haben, installieren Sie es.
Wenn die Installation abgeschlossen oder bereits installiert ist Der Bildschirm zum Erstellen von Containern wird geöffnet.
Sie können den Namen des Containers beliebig auswählen. Befehle und Einstiegspunkte können hier die Dockerfile-Einstellungen überschreiben. Die Standardeinstellung ist in Ordnung, sofern nicht anders angegeben. Die CPU- und Speicherbeschränkungen variieren je nach Umgebung. Belassen Sie daher die Standardeinstellungen hier. Überprüfen Sie als Nächstes die Netzwerkelemente in den detaillierten Einstellungen.
Überprüfen Sie in den Netzwerkeinstellungen, welcher Port weitergeleitet wird. Der Devpi-Server verwendet standardmäßig 3141. Die Portnummer auf der Hostseite ist zu Beginn automatisch. Ändern Sie sie daher in 3141. Abhängig vom Basis-Image gibt es außerdem freie Ports, die nicht relevant sind. Löschen Sie sie daher. In der folgenden Abbildung ist 6080 nicht erforderlich. Löschen Sie ihn daher.
Sie können das vom Cache-Server verwendete Verzeichnis auch in das freigegebene Ordnerelement einbinden. Erstellen Sie nach Abschluss der obigen Einstellungen einen Container.
So verwenden Sie den Cache-Server für den Befehl pip
--index-url
Optionale Cache-Server-URL,
Übergeben Sie die IP-Adresse des Cache-Servers als Option "--trusted-host".
Trusted-Host wird benötigt, da der Cache-Server nur http und nicht https überwacht.
Die Unterstützung von https ist mühsam, daher habe ich beschlossen, es nur in einem vertrauenswürdigen Netzwerk zu verwenden.
Stellen Sie den vertrauenswürdigen Host ein.
Wenn die IP-Adresse der Cache-Server-URL "xxx.xxx.xxx.xxx" lautet,
Es wird zu "http: //xxx.xxx.xxx.xxx: 3141 / root / pypi".
Beachten Sie, dass der Teil / root / pypi
leicht zu vergessen ist. (Siehe Dokumentation für andere URL-Adressen als / root / pypi
)
Es ist jedoch mühsam, dem Befehl pip jedes Mal Optionen hinzuzufügen.
Es kann auch als Einstellungsdatei verwendet werden.
Beschreiben Sie den folgenden Inhalt in ~ / .pip / pip.conf
.
pip.conf
[global]
index-url="http://xxx.xxx.xxx.xxx:3141/root/pypi"
trusted-host="xxx.xxx.xxx.xxx"
Danach wird bei Verwendung von pip auf den Cache-Server zugegriffen.
Die häufigste Verwendung von pip in Docker erfolgt zur Erstellungszeit, dh in der Docker-Datei, und nicht zur Containerausführungszeit. Verwenden Sie den Befehl ARG, um zu entscheiden, ob der Cache-Server während der Docker-Erstellung verwendet werden soll.
Dockerfile
ARG PIP_PROXY
RUN if [ -n "$PIP_PROXY" ]; then \
echo "Set pip proxy: $PIP_PROXY"; \
IPPORT=${PIP_PROXY#*//}; \
mkdir -p ~/.pip/; \
echo "[global]\nindex-url=$PIP_PROXY/root/pypi\ntrusted-host=${IPPORT%:*}" >> ~/.pip/pip.conf; \
cat ~/.pip/pip.conf; \
fi
Fügen Sie die obigen Elemente zur Docker-Datei hinzu. Variablen werden in "ARG" definiert, und Werte können mit der Option "- build-arg" während des "Docker-Builds" übergeben werden.
Geben Sie für die Docker-Datei oben "--build-arg PIP_PROXY = http: //xxx.xxx.xxx.xxx: 3141 /" ein Bei Übergabe an "Docker Build" wird "~ / .pip / pip.conf" entsprechend eingestellt. Wenn Sie die Variable "PIP_PROXY" nicht mit "-build-arg" festlegen, wird sie übersprungen.
Aus dem oben Gesagten wurde es möglich, die Verwendung des Cache-Servers zum Zeitpunkt der Erstellung zu bestimmen.
Bereiten Sie mit der Container Station des QNAP NAS einen devpi server Container vor. tat. Personen in der ARM-Umgebung nehmen sich Zeit, sodass das diesmal erstellte Image einfacher verwendet werden kann. Außerdem wird der ARG-Befehl von Dockerfile verwendet, um die Verwendung des Cache-Servers zur Erstellungszeit zu ändern.
Auch diesmal war (mit Docker) die Geschichte, einen PyPI-Cache-Server aufzubauen und mich wieder ein wenig glücklich zu machen hilfreich.
Recommended Posts