ホームページ バックエンド開発 Python チュートリアル Docker が Artifact Registry から Python パッケージをダウンロードできるようにする Cloud ビルドを作成する方法

Docker が Artifact Registry から Python パッケージをダウンロードできるようにする Cloud ビルドを作成する方法

Dec 09, 2024 am 08:46 AM

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

Google Cloud の Artifact Registry は、アプリケーションの依存関係を管理するための強力なツールです。このガイドでは、Cloud Build パイプラインを作成して Docker が Artifact Registry に保存されている Python パッケージにアクセスできるようにする方法を説明します。これらの手順に従うことで、依存関係を安全に管理し、デプロイメントを合理化できます。


前提条件

  1. Google Cloud プロジェクト: GCP プロジェクトが設定されていることを確認してください。
  2. Artifact Registry: Python リポジトリは Artifact Registry ですでに構成されている必要があります。
  3. Cloud Build: プロジェクトの Cloud Build API を有効にします。
  4. 認証: Artifact Registry にアクセスするためのサービス アカウントのアクセス許可を構成します。

Cloud Build を構成する手順

1. アーティファクト レジストリ トークンを生成する

gcloud auth を使用して、Docker ビルド プロセスが Artifact Registry で認証できるようにするアクセス トークンを生成します。これを行う方法は次のとおりです:

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. Docker Build でトークンを使用する

トークンが生成されると、それをビルド引数として docker ビルド プロセスに渡すことができます。その方法は次のとおりです:

  - 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. Dockerfileを作成する

Dockerfile は、トークンを使用して Artifact Registry から Python パッケージをダウンロードするように構成されています:

# 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. ビルド構成オプションの追加

最後に、マシンタイプ、ロギング、置換などの他の構成を定義します。

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:
  - gcp-cloud-build
  - artifact-registry
  - docker-python-packages
ログイン後にコピー

まとめ

この設定により、Cloud Build の Docker ビルドがアクセス トークンを使用して Artifact Registry から Python の依存関係を安全に取得できるようになります。提供された構成を、パッケージ名、リポジトリ URL、デプロイメント ターゲットなどのプロジェクト固有の詳細に合わせて調整します。

このパイプラインを実装すると、セキュリティが向上し、プロジェクトの依存関係管理がシームレスになります。

以上がDocker が Artifact Registry から Python パッケージをダウンロードできるようにする Cloud ビルドを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? 中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Investing.comの反クローラーメカニズムをバイパスするニュースデータを取得する方法は? Investing.comの反クローラーメカニズムをバイパスするニュースデータを取得する方法は? Apr 02, 2025 am 07:03 AM

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。

See all articles