[PYTHON] Erstellen Sie einen Pypi-Cache-Server auf QNAP

Einführung

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.

Pypi-Cache-Server

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 /).

Starten Sie den Devpi-Server-Container

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.

fig6.png

Suchen Sie auf der Registerkarte Containererstellung nach dem zu verwendenden Containerbild. Standardmäßig ist das Bild auf DockerHub verfügbar.

fig7.png

Wenn Sie das gewünschte Image gefunden haben, installieren Sie es.

fig8.png

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.

fig9.png

Ü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.

fig10.png

Sie können das vom Cache-Server verwendete Verzeichnis auch in das freigegebene Ordnerelement einbinden. Erstellen Sie nach Abschluss der obigen Einstellungen einen Container.

Einstellungen auf der Benutzerseite des Cache-Servers

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.

Verwendung mit Docker

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.

Zusammenfassung

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

Erstellen Sie einen Pypi-Cache-Server auf QNAP
Erstellen Sie einen einfachen WebDAV-Server unter Linux
Erstellen Sie einen Samba-Server unter Arch Linux
Lassen Sie uns einen WEB-Server mit Chromebook einrichten
[Teil 2] Erstellen wir einen Webserver mit EC2 Linux
Erstellen Sie unter CentOS 7.7 eine Python-Umgebung für Ihren Heimserver
Führen Sie einen Linux-Server mit GCP aus
Führen Sie TensorFlow2 auf dem VPS-Server aus
Registrieren Sie das Paket bei PyPI
Erstellen Sie eine Python3-Umgebung unter CentOS7
Erstellen Sie einfach einen DNS-Server mit Twisted
Erstellen Sie eine Python-Umgebung unter MacOS (Catallina)
Erstellen Sie einen NFS-Server unter Arch Linux
Erstellen Sie einen CGI-Server, der unter Python 3 in Docker ausgeführt wird
Erstellen Sie ein Jupyter-Notebook auf einem Remote-Server (CentOS).
Erstellen Sie eine Python + OpenCV-Umgebung in Cloud9
Führen Sie Jupyter Notebook auf einem Remote-Server aus
Erstellen Sie mit Ansible einen Proxyserver mit nginx auf mehreren Remote-Servern
Erstellen Sie eine LAMP-Umgebung auf Ihrem lokalen Docker
Erstellen Sie mit pulumi eine WardPress-Umgebung auf AWS
Erstellen Sie einfach eine Python 3-Ausführungsumgebung unter Windows
Erstellen Sie eine Django-Umgebung auf Raspai (MySQL)
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
Erstellen Sie eine Python-Umgebung auf einem Mac (Mountain Lion)
Erstellen Sie eine Python-Entwicklungsumgebung auf Ihrem Mac
Erstellen Sie eine Kubernetes-Umgebung für die Entwicklung unter Ubuntu
Hängen Sie das Verzeichnis eines anderen Servers mit sshfs ein
Erstellen einer Python-Umgebung auf dem Sakura VPS-Server
Quellkompilierung Apache2.4 (httpd 2.4.43) + PHP7.4 unter Linux zum Erstellen eines Webservers ―― 1. Einführung in Apache
Erstellen Sie eine Python-Entwicklungsumgebung auf Raspberry Pi
Quellkompilierung Apache2.4 (httpd 2.4.43) + PHP7.4 unter Linux zum Erstellen eines Webservers --2 PHP-Einführung
Erstellen Sie Server in Linux und lokalen Netzwerken mit Raspberry Pi NextCloud und Desktop-Sharing
Quellkompilierung Apache2.4 (httpd 2.4.43) + PHP7.4 unter Linux zum Erstellen eines Webservers --3 MySQL 8.0 Einführung
[CentOS 7.3] Erstellen Sie einen FTP-Server auf dem ESXi-Host
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (3) GVim8.0 und Python3.6
Erstellen einer Django-Entwicklungsumgebung mit pyenv-virtualenv auf einem Mac
Richten Sie einen einfachen lokalen Server auf Ihrem Mac ein
# 2 Erstellen Sie eine Python-Umgebung mit einer EC2-Instanz von AWS (ubuntu18.04).
Erstellen Sie eine lokale Entwicklungsumgebung für Laravel6.X auf Ihrem Mac
Richten Sie mit Samba einen Dateiserver unter Ubuntu 20.04 ein
Erstellen Sie eine Python-Umgebung für maschinelles Lernen unter Mac OS
Erstellen Sie die Python-Erweiterung E-Cell 4 unter Windows 7 (64 Bit).
Ich möchte ein beliebtes Paket auf PyPi finden
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (1)
So erstellen Sie eine Django (Python) -Umgebung auf Docker
Erstellen Sie Apache HTTP Server und Wildfly unter Oracle Linux 8
Erstellen Sie eine Python-Entwicklungsumgebung unter Mac OS X.
Richten Sie in 30 Minuten einen kostenlosen Server unter AWS ein
Erstellen Sie mit pyenv eine Python-Umgebung auf Ihrem Mac
[Teil 1] Lassen Sie uns einen Micra-Server unter Linux einrichten
CTF-Anfänger haben versucht, einen Problemserver (Web) zu erstellen [Problem]
Erstellen Sie eine Python-Entwicklungsumgebung mit pyenv unter MacOS
Streunender Build von Python 3 auf Sakuras Mietserver (Hinweis)
So führen Sie Django unter IIS auf einem Windows-Server aus
So erstellen Sie eine Python-Umgebung unter Amazon Linux 2
Windows10 (x64) Erstellen Sie nativ eine maschinelle Lernumgebung
Einführung in den Cache-Server-Nuster
Die Geschichte, einen PyPI-Cache-Server (mit Docker) aufzubauen und mich wieder ein wenig glücklich zu machen
Erstellen Sie TensorFlow unter Windows
Erstellen Sie XGBoost unter Windows
Build Python auf Ubuntu