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.
poetry source add --priority=supplemental gcp_registry https://{LOCATION}-python.pkg.dev/{REPO}/{PACKAGE}/
poetry publish --no-interaction --build --repository gcp_registry
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.
pip install keyring
pip install keyrings.google-artifactregistry-auth
pip install -r /opt/requirements_private.txt
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. -
- 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.
- 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.
- Stellen Sie sicher, dass Sie eine geeignete Berechtigung zum Lesen der Datei haben.
-
docerfile Beispiel -
Folgendes ist das Erscheinungsbild Ihrer Dockerfile:
ordnungsgemäß_private.txt ist immer noch der gleiche.
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
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:
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"
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!