So verwenden Sie Docker zum Erstellen eines privaten pypi-Repositorys

So verwenden Sie Docker zum Erstellen eines privaten pypi-Repositorys

1. Konstruktion

1. Bereiten Sie die Datei htpasswd.txt vor

Die Datei enthält den Benutzernamen und das Passwort zur Verifizierung beim Hochladen des Pakets ins Lager.

pip install htpasswd
htpasswd -sc htpasswd.txt <Benutzername>

2. Starten Sie den Container

docker run --name pypiserver --restart=always -v /data/pypi/packages:/data/packages -v /root/htpasswd.txt:/data/htpasswd.txt -p 8080:8080 -d pypiserver/pypiserver -P htpasswd.txt Pakete
#Sie müssen das Datenverzeichnis und die Datei htpasswd.txt im Voraus auf dem Host erstellen

3. Richten Sie den Nginx-Reverse-Proxy ein

cat /usr/local/nginx/conf/exten/pypi.conf
Upstream-Pypi {
          Server 127.0.0.1:8080;
      }
 
Server {
 
    hören Sie 80;
    Servername pypi.local.me;
    Standort / {
          Proxy_Pass_Header-Server;
          Proxy_set_header Host $http_host;
          Proxy_Redirect aus;
          Proxy_Set_Header X-Real-IP $Remote_Addr;
          proxy_set_header X-Schema $scheme;
          Proxy-Passwort http://pypi;
          }
}

2. Verwendung

1. Erstellen Sie ein Testprojekt

# Erstellen Sie ein Projektverzeichnis mkdir -p linode_example/linode_example
# setup.py erstellen
Katze linode_example/setup.py
von Setuptools Setup importieren
aufstellen(
   Name = "Linode_Beispiel",
   packages=['linode_example'], #Verzeichnis nach dem Hochladen ins Warehouse, z. B. http://pypi.local.me/linode_example
   Beschreibung = 'Hallo Welt, Enterprise Edition',
   version='0.1', # Versionsnummer url='http://github.com/example/linode_example',
   Autor = "Linode",
   Schlüsselwörter = ['pip', 'linode', 'Beispiel']
   )
# Der Inhalt dieser Datei dient nur zu Erklärungszwecken. Sie können ihn entsprechend Ihrem eigenen Paket festlegen. # Erstellen Sie das Hauptprogramm __init__.py cat linode_example/linode_example/__init__.py
def hallo_wort():
   drucken("Hallo Welt")
 
#Paket und python3.7 setup.py hochladen sdist #Paket. Nach der Ausführung befindet sich ein Tarball im Verzeichnis „dist“ twine upload --repository-url http://pypi.local.me dist/* #Beim Hochladen sind Benutzername und Passwort erforderlich: admin/admin123

2. Verwenden Sie das in das Lager hochgeladene Paket

pip install -i http://pypi.local.me --trusted-host pypi.local.me linode_beispiel

Verpackungshinweise:

1. Die Verzeichnisstruktur aller Projekte, die im Git-Repository gepackt werden müssen, muss konsistent sein, um die automatische Integration von Jenkinsfile zu ermöglichen.

2. Die setup.py-Dateien aller Projekte, die verpackt werden müssen, müssen sich im Stammverzeichnis des Projekts befinden.

3. Python verwendet eine einheitliche Version, und die Version jedes Projekts muss korrigiert werden, um die Iteration zu erleichtern.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Der Prozess zum Erstellen eines privaten Docker-Registry-Warehouses
  • Detailliertes Tutorial zur Installation von Harbor Private Warehouse mit Docker Compose
  • Docker-Compose erstellt schnell Schritte für ein privates Docker-Warehouse
  • Schritte für Docker zum Erstellen eines privaten Lagerhafens
  • Der Prozess, mit dem Docker ein privates Lager einrichtet

<<:  Zusammenfassung von 10 erstaunlichen Tricks von Element-UI

>>:  Fragen und Antworten: Unterschiede zwischen XML und HTML

Artikel empfehlen

MySQL-Tabellenübergreifende Abfrage und Tabellenübergreifende Aktualisierung

Freunde, die über Grundkenntnisse in SQL verfügen...

Beispiel für automatischen Stoppeffekt nach Text-Scrollen

Die Wirkung ist ganz einfach: Kopieren Sie einfach...

Beispiele für MySQL-Batch-Hinzufügungs- und Speichermethoden

Beim Anmelden am Stresstest sind viele verschiede...

Lösungen für MySQL OOM (Speicherüberlauf)

OOM steht für „Out Of Memory“, was so viel bedeut...

Tutorial zur Installation und Konfiguration von MySQL 8.0.12 unter Win10

Installation, Konfiguration, Start, Anmeldung und...

CSS3-Radarscan-Kartenbeispielcode

Verwenden Sie CSS3, um coole Radar-Scan-Bilder zu...

jQuery implementiert Warenkorbfunktion

In diesem Artikelbeispiel wird der spezifische Co...