Rumah >pembangunan bahagian belakang >Tutorial Python >Cara Mencipta Binaan Awan untuk Membenarkan Docker Muat Turun Pakej Python daripada Pendaftaran Artifak

Cara Mencipta Binaan Awan untuk Membenarkan Docker Muat Turun Pakej Python daripada Pendaftaran Artifak

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-09 08:46:07355semak imbas

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

Pendaftaran Artifak Google Cloud ialah alat yang berkuasa untuk mengurus kebergantungan aplikasi anda. Panduan ini menunjukkan cara membuat saluran paip Cloud Build untuk membolehkan Docker mengakses pakej Python yang disimpan dalam Pendaftaran Artifak. Dengan mengikuti langkah-langkah ini, anda boleh mengurus kebergantungan dengan selamat dan memperkemaskan penempatan.


Prasyarat

  1. Projek Awan Google: Pastikan anda menyediakan projek GCP.
  2. Pendaftaran Artifak: Repositori Python sepatutnya sudah dikonfigurasikan dalam Pendaftaran Artifak.
  3. Cloud Build: Dayakan Cloud Build API untuk projek anda.
  4. Pengesahan: Konfigurasikan kebenaran akaun perkhidmatan untuk mengakses Daftar Artifak.

Langkah-langkah untuk Mengkonfigurasi Binaan Awan

1. Hasilkan Token Pendaftaran Artifak

Gunakan gcloud auth untuk menjana token akses yang akan membolehkan proses binaan Docker untuk mengesahkan dengan Pendaftaran Artifak. Begini cara anda boleh melakukannya:

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. Gunakan Token dalam Docker Build

Setelah token dijana, ia boleh dihantar ke proses binaan docker sebagai hujah binaan. Begini caranya:

  - 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. Cipta fail Docker

Fail Docker dikonfigurasikan untuk menggunakan token untuk memuat turun pakej Python daripada Pendaftaran Artifak:

# 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. Tambah Pilihan Konfigurasi Binaan

Akhir sekali, tentukan konfigurasi lain seperti jenis mesin, pengelogan dan penggantian:

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

Teg dan Metadata

Untuk menyusun binaan anda dengan lebih baik, sertakan teg yang bermakna:

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

Ringkasan

Persediaan ini memastikan bahawa binaan Docker anda dalam Binaan Awan boleh menarik kebergantungan Python dengan selamat daripada Pendaftaran Artifak anda menggunakan token akses. Laraskan konfigurasi yang disediakan kepada butiran khusus projek anda, seperti nama pakej, URL repositori dan sasaran penggunaan.

Melaksanakan saluran paip ini akan meningkatkan keselamatan dan menjadikan pengurusan pergantungan berjalan lancar untuk projek anda.

Atas ialah kandungan terperinci Cara Mencipta Binaan Awan untuk Membenarkan Docker Muat Turun Pakej Python daripada Pendaftaran Artifak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn