LoginSignup
0
0

More than 1 year has passed since last update.

Git Actions を使用して Python コードを Cloud Run 上にデプロイ

Posted at

以下は、Git Actions を使用して Python コードを Cloud Run 上にデプロイするための手順です。

GCP でプロジェクトを作成します。

Cloud Run サービスを作成します。

Cloud Run サービスにデプロイするために使用する Dockerfile を作成します。例えば、以下のようになります。

dockerfile
# Dockerfile

# Use the official Python image
FROM python:3.9-slim-buster

# Copy the application directory to the container
COPY . /app

# Set the working directory
WORKDIR /app

# Install dependencies
RUN pip install --no-cache-dir -r requirements.txt

# Expose the port
EXPOSE 8080

# Start the application
CMD ["python", "app.py"]

GCP の認証情報を設定します。以下の手順で実行します。

GCP コンソールにログインします。
「IAM & 管理」 > 「サービス アカウント」を選択します。
「新しいサービス アカウント」をクリックし、適切な権限を与えたサービス アカウントを作成します。
サービス アカウントを選択し、JSON 形式の認証情報ファイルをダウンロードします。
作成した Dockerfile を GCR にプッシュします。以下の手順で実行します。
Cloud Shell を開始します。
gcloud auth configure-docker コマンドを実行して Docker の認証情報を設定します。
docker build -t gcr.io/[PROJECT-ID]/[IMAGE-NAME] . コマンドを実行して Docker イメージをビルドします。
docker push gcr.io/[PROJECT-ID]/[IMAGE-NAME] コマンドを実行して Docker イメージを GCR にプッシュします。

Git リポジトリでの設定について以下の手順で説明します。

ソースコードと Dockerfile を Git リポジトリに追加します。

GitHub でリポジトリを作成します。

Cloud Run にデプロイするために使用するサービス アカウントのキーを保存します。以下の手順で保存します。

GCP コンソールにログインします。
「IAM & 管理」 > 「サービス アカウント」を選択します。
使用するサービス アカウントを選択し、「鍵の作成」をクリックします。
JSON 形式の鍵を作成し、ダウンロードします。
GitHub のリポジトリの「Settings」 > 「Secrets」を開き、保存したサービス アカウントのキーを追加します。以下の手順で追加します。
「New repository secret」をクリックします。
Name に GCP_SA_KEY を入力します。
Value に保存したサービス アカウントのキーを貼り付けます。
.github/workflows/main.yml を作成し、以下の内容を追加します。

main.yaml
yaml

name: Deploy to Cloud Run

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2

    - name: Set up Cloud SDK
      uses: google-github-actions/setup-gcloud@v0.4.0
      with:
        project_id: [PROJECT-ID]
        service_account_key: ${{ secrets.GCP_SA_KEY }}
        export_default_credentials: true

    - name: Build and deploy to Cloud Run
      run: |
        gcloud builds submit --tag gcr.io/[PROJECT-ID]/[IMAGE-NAME] .
        gcloud run deploy [SERVICE-NAME] --image gcr.io/[PROJECT-ID]/[IMAGE-NAME] --platform managed --region [REGION]

上記の YAML ファイルでは、以下の内容を実行します。

main ブランチに push された場合にジョブがトリガーされます。
Google Cloud SDK をセットアップし、サービス アカウントのキーを使用して認証します。
Docker イメージをビルドし、GCR にプッシュします。
Cloud Run にデプロイします。
各項目で使用する値は、自分のプロジェクトに合わせて適宜変更してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0