Heim >Backend-Entwicklung >Python-Tutorial >So erstellen Sie einen Cloud-Build, damit Docker Python-Pakete aus der Artifact Registry herunterladen kann
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.
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"
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 .
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"]
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
Um Ihre Builds besser zu organisieren, fügen Sie aussagekräftige Tags hinzu:
tags: - gcp-cloud-build - artifact-registry - docker-python-packages
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!