Artifact Registry de Google Cloud est un outil puissant pour gérer les dépendances de votre application. Ce guide montre comment créer un pipeline Cloud Build pour permettre à Docker d'accéder aux packages Python stockés dans Artifact Registry. En suivant ces étapes, vous pouvez gérer en toute sécurité les dépendances et rationaliser les déploiements.
Utilisez gcloud auth pour générer un jeton d'accès qui permettra au processus de construction Docker de s'authentifier auprès d'Artifact Registry. Voici comment procéder :
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"
Une fois le jeton généré, il peut être transmis au processus de construction du docker en tant qu'argument de construction. Voici comment :
- 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 .
Le Dockerfile est configuré pour utiliser le jeton pour télécharger les packages Python depuis Artifact Registry :
# 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"]
Enfin, définissez d'autres configurations telles que le type de machine, la journalisation et les substitutions :
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
Pour mieux organiser vos builds, incluez des balises significatives :
tags: - gcp-cloud-build - artifact-registry - docker-python-packages
Cette configuration garantit que vos builds Docker dans Cloud Build peuvent extraire en toute sécurité les dépendances Python de votre Artifact Registry à l'aide d'un jeton d'accès. Ajustez la configuration fournie aux détails spécifiques à votre projet, tels que les noms de packages, les URL de référentiel et les cibles de déploiement.
La mise en œuvre de ce pipeline améliorera la sécurité et rendra la gestion des dépendances transparente pour vos projets.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!