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

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

Mary-Kate Olsen
リリース: 2024-12-09 08:46:07
オリジナル
390 人が閲覧しました

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 で認証できるようにするアクセス トークンを生成します。これを行う方法は次のとおりです:

1

2

3

4

5

6

7

8

9

10

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 ビルド プロセスに渡すことができます。その方法は次のとおりです:

1

2

3

4

5

6

7

8

9

10

11

12

13

- 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 パッケージをダウンロードするように構成されています:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

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

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

1

2

3

4

5

6

7

8

9

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

ログイン後にコピー

タグとメタデータ

ビルドをより適切に整理するには、意味のあるタグを含めます:

1

2

3

4

tags:

  - gcp-cloud-build

  - artifact-registry

  - docker-python-packages

ログイン後にコピー

まとめ

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

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

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

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート