Heim > Backend-Entwicklung > Python-Tutorial > So installieren Sie Python -Pakete aus der GCP -Artefaktregistrierung in der Docker -Datei

So installieren Sie Python -Pakete aus der GCP -Artefaktregistrierung in der Docker -Datei

Susan Sarandon
Freigeben: 2025-01-28 16:14:16
Original
218 Leute haben es durchsucht

How to Install Python Packages from GCP Artifact Registry in Docker file

Sie haben ein großartiges Python -Paket entwickelt, um die interne Nutzung des Unternehmens bereitzustellen. Sie möchten es veröffentlichen, damit Ihr Kollege es verwenden kann. Da das Paket nur für den internen Gebrauch bestimmt ist, kann es nicht auf der PYPI (offizielle Python -Paketregistrierung) veröffentlicht werden. Da Ihr Unternehmen GCP verwendet, ist die natürliche Wahl stattdessen die Artefaktregistrierung.

Wie im Dokument beschrieben, ist es sehr einfach, das Paket in der Registrierung zu veröffentlichen.

Ich benutze Gedichtverpackungsbibliothek. Hier sind einige Befehle, die Sie verwenden werden:

Nachdem Sie Ihre Tasche in Artefaktregistrierung veröffentlicht haben, können Sie sie als abhängiger Gegenstand für andere Projekte zur Verfügung stellen.
<code class="language-bash">poetry source add --priority=supplemental gcp_registry https://{LOCATION}-python.pkg.dev/{REPO}/{PACKAGE}/
poetry publish --no-interaction --build --repository gcp_registry</code>
Nach dem Login kopieren

Installationspaket

Installieren eines Pakets auf dem lokalen Computer, erstellen Sie bitte eine Anforderungen_private.txt -Datei:

Verwenden Sie dann den folgenden Befehl, um Pakete zu installieren:

<code>--index-url https://{LOCATION}-python.pkg.dev/{REPO}/{PACKAGE}/simple/
--extra-index-url https://pypi.org/simple
{YOUR_PACKAGE_NAME}</code>
Nach dem Login kopieren
Nach dem Login kopieren

Artifaktregistrierung Authentifizierung von Keyring -Paketpaket. Stellen Sie sicher, dass Ihre Anwendung vor fortgeschrittenen Anwendung (ADC) standhält.

<code class="language-bash">pip install keyring
pip install keyrings.google-artifactregistry-auth
pip install -r /opt/requirements_private.txt</code>
Nach dem Login kopieren

Docker Challenge


Wenn Sie eine Bewerbung in Docker ausführen, werden Sie sich anderen Herausforderungen stellen:

Sie möchten keine vertraulichen Informationen (z. B. Ihre Service -Kontodatei) in den Docker -Spiegel kopieren.

    Sie müssen noch eine Artefaktregistrierung zur Authentifizierung verwenden.
  1. Die Lösung ist einfach, aber es gibt keinen guten Dokumentdatensatz. Ich habe ein paar Tage gebraucht, um das herauszufinden, also möchte ich Ihre Zeit sparen und Ihnen helfen, sie in ein paar Minuten zu erkennen.

Lösung


Umgebungsvariablen von Google_Application_credentials während des Docker -Konstruktionszeitraums, wodurch auf den Pfad der Service -Kontodatei (statt auf den Dateiinhalt selbst) hingewiesen wird.

Die Servicekonto -Datei wird heimlich unter dem von Google_Application_credentials angegebenen Pfad installiert.
  1. Alle Vorgänge werden in derselben Run -Anweisung durchgeführt, einschließlich der Installation von Keyring -Taschen und privaten Abhängigkeiten. Dies ist wichtig, da die Installation von Dateien nur im Kontext existiert.
  2. Stellen Sie sicher, dass Sie eine geeignete Berechtigung zum Lesen der Datei haben.
  3. docerfile Beispiel
  4. Folgendes ist das Erscheinungsbild Ihrer Dockerfile:

ordnungsgemäß_private.txt ist immer noch der gleiche.

<code class="language-dockerfile">ARG GOOGLE_APPLICATION_CREDENTIALS

COPY requirements_private.txt /opt/requirements_private.txt

RUN --mount=type=secret,id=creds,target=/opt/mykey.json,mode=0444 \
     pip install keyring && \
     pip install keyrings.google-artifactregistry-auth && \
     pip install -r /opt/requirements_private.txt

COPY requirements.txt /opt/requirements.txt
RUN pip install -r /opt/requirements.txt</code>
Nach dem Login kopieren
Wie Sie sehen können, können Sie mehrere Anforderungen Dateien haben. In meinem Beispiel wird die Datei Anforderungen.txt verwendet, um das Paket in der öffentlichen Registrierung von PYPI zu hosten. Dann Ihre Datei docer_compose.yml

<code>--index-url https://{LOCATION}-python.pkg.dev/{REPO}/{PACKAGE}/simple/
--extra-index-url https://pypi.org/simple
{YOUR_PACKAGE_NAME}</code>
Nach dem Login kopieren
Nach dem Login kopieren
Dann können Sie den Befehl konstruieren:

<code class="language-yaml">services:
  app:
    build:
      context: .
      args:
        - GOOGLE_APPLICATION_CREDENTIALS=/opt/mykey.json
      secrets:
        - creds

secrets:
  creds:
    file: "C:/your/local/host/path/to/google_service_account.json"</code>
Nach dem Login kopieren
Ich hoffe, dieser Artikel hilft Ihnen dabei, sich in Artefaktregistrierung und Docker zu integrieren.

Das obige ist der detaillierte Inhalt vonSo installieren Sie Python -Pakete aus der GCP -Artefaktregistrierung in der Docker -Datei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage