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

Verwendung der MySQL-Zeitdifferenzfunktionen TIMESTAMPDIFF und DATEDIFF

Verwendung der Zeitdifferenzfunktionen TIMESTAMPD...

Lösung für das Problem der MySQL-Transaktionsparallelität

Ich bin während der Entwicklung auf ein solches P...

Detaillierte Erklärung zum schnellen Erstellen einer Blog-Website mit Docker

Inhaltsverzeichnis 1. Vorbereitung 2. Bereitstell...

Detaillierte Erklärung der Tomcat-Verzeichnisstruktur

Inhaltsverzeichnis Verzeichnisstruktur bin-Verzei...

Analyse der Unfallursachen durch Unicode-Signatur BOM

Möglicherweise verwenden Sie hier Include-Dateien,...

Was wir von Googles neuer Benutzeroberfläche (Bilder und Text) lernen können

Die bedeutendste Website-Änderung im Jahr 2011 bet...

Beispielanalyse des Seitenaufteilungsprinzips des MySQL-Clusterindex

Dieser Artikel veranschaulicht anhand eines Beisp...

CSS-Standard: Eigenschaft „vertical-align“

<br />Originaltext: http://www.mikkolee.com/...

Detaillierte Analyse der untergeordneten und übergeordneten Vue-Komponenten

Inhaltsverzeichnis 1. Übergeordnete Komponenten u...

Detaillierter Prozess zum Konfigurieren eines HTTPS-Zertifikats unter Nginx

1. Der Unterschied zwischen HTTP und HTTPS HTTP: ...