Heim >Backend-Entwicklung >Python-Tutorial >So erstellen Sie einen Cloud-Build, damit Docker Python-Pakete aus der Artifact Registry herunterladen kann

So erstellen Sie einen Cloud-Build, damit Docker Python-Pakete aus der Artifact Registry herunterladen kann

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-09 08:46:07364Durchsuche

How to Create a Cloud Build to Allow Docker to Download Python Packages from Artifact Registry

Artifact Registry von Google Cloud ist ein leistungsstarkes Tool zum Verwalten der Abhängigkeiten Ihrer Anwendung. In dieser Anleitung wird gezeigt, wie Sie eine Cloud Build-Pipeline erstellen, um Docker den Zugriff auf in Artifact Registry gespeicherte Python-Pakete zu ermöglichen. Indem Sie diese Schritte befolgen, können Sie Abhängigkeiten sicher verwalten und Bereitstellungen optimieren.


Voraussetzungen

  1. Google Cloud-Projekt: Stellen Sie sicher, dass Sie ein GCP-Projekt eingerichtet haben.
  2. Artifact Registry: Ein Python-Repository sollte bereits in der Artifact Registry konfiguriert sein.
  3. Cloud Build: Aktivieren Sie die Cloud Build API für Ihr Projekt.
  4. Authentifizierung: Konfigurieren Sie Dienstkontoberechtigungen für den Zugriff auf die Artefaktregistrierung.

Schritte zum Konfigurieren von Cloud Build

1. Generieren Sie ein Artefakt-Registrierungstoken

Verwenden Sie gcloud auth, um ein Zugriffstoken zu generieren, das es dem Docker-Build-Prozess ermöglicht, sich bei der Artifact Registry zu authentifizieren. So können Sie das tun:

steps:
  # Generate Artifact Registry token
  - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
    entrypoint: bash
    args:
      - '-c'
      - |
        art=$(gcloud auth print-access-token)
        echo "$art" > /workspace/artifact_registry_token
        echo "$art"

2. Verwenden Sie das Token in Docker Build

Sobald das Token generiert wurde, kann es als Build-Argument an den Docker-Build-Prozess übergeben werden. So geht's:

  - name: gcr.io/cloud-builders/docker
    id: Build
    env:
      - 'btf=/workspace/artifact_registry_token'
    entrypoint: bash
    args:
      - '-c'
      - |
        docker build \
          --build-arg ARTIFACT_REGISTRY_TOKEN=$(cat $btf) \
          --build-arg PROJECT_ID=$PROJECT_ID \
          -t test-image:latest \
          -f Dockerfile .

3. Erstellen Sie die Docker-Datei

Die Docker-Datei ist so konfiguriert, dass sie das Token zum Herunterladen von Python-Paketen aus Artifact Registry verwendet:

# syntax=docker/dockerfile:1

FROM python:3.11-slim

ARG ARTIFACT_REGISTRY_TOKEN
ARG PROJECT_ID

# Keeps Python from buffering stdout and stderr
ENV PYTHONUNBUFFERED=1

WORKDIR /app

RUN pip install --no-cache-dir -r requirements.txt

COPY . .

# Install dependencies using the token
RUN pip install \
    --index-url https://pypi.org/simple \
    --extra-index-url https://oauth2accesstoken:${ARTIFACT_REGISTRY_TOKEN}@us-central1-python.pkg.dev/${PROJECT_ID}/python-packages/simple/ \
    "your-package-name==your-package-version"

# Expose the application port
EXPOSE 8080

# Command to run the application
CMD ["uvicorn", "main:app", "--port=8080", "--host=0.0.0.0"]

4. Fügen Sie Build-Konfigurationsoptionen hinzu

Definieren Sie abschließend weitere Konfigurationen wie Maschinentyp, Protokollierung und Ersetzungen:

options:
  machineType: E2_HIGHCPU_8
  substitutionOption: ALLOW_LOOSE
  logging: CLOUD_LOGGING_ONLY
substitutions:
  _PACKAGE: your-package-name==your-package-version
  _REPOSITORY: python-packages
  _LOCATION: us-central1
  _PROJECT_ID: your-project-id

Tags und Metadaten

Um Ihre Builds besser zu organisieren, fügen Sie aussagekräftige Tags hinzu:

tags:
  - gcp-cloud-build
  - artifact-registry
  - docker-python-packages

Zusammenfassung

Dieses Setup stellt sicher, dass Ihre Docker-Builds in Cloud Build Python-Abhängigkeiten mithilfe eines Zugriffstokens sicher aus Ihrer Artifact Registry abrufen können. Passen Sie die bereitgestellte Konfiguration an Ihre projektspezifischen Details an, z. B. Paketnamen, Repository-URLs und Bereitstellungsziele.

Die Implementierung dieser Pipeline verbessert die Sicherheit und sorgt für ein nahtloses Abhängigkeitsmanagement für Ihre Projekte.

Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen Cloud-Build, damit Docker Python-Pakete aus der Artifact Registry herunterladen kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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