Open3

GCPのCloudRunJobs覚書

gotoooogotoooo

はじめに

とある事情でGCP上で動作するバッチ処理スクリプトを作ることとなった。
作業内容を覚書として残しておく。

実現したいこと

  • ffmpegで動画を処理するバッチスクリプトを日次スケジューリングで動かす
  • そのためには自前でコンテナを用意し、GCPにデプロイする必要あり

前提

  • 筆者はコンテナ初心者。dockerは写経でなんとか動かせるレベル。
  • WindowsのWSL2のUbuntu上でdockerを使用する。環境は構築済み。

実現までのステップ

1. 学習フェーズ

1-1. dockerに慣れる

1-1-1. ローカルのコンテナ環境でHelloWorld

1-2. GCP CloudRunに慣れる

1-2-1. 公式チュートリアル消化

1-2-2. 自作HelloWorldコンテナのデプロイ

2. 実装フェーズ

2-1. ローカルのコンテナ環境で動画処理スクリプト実行

2-2. 自作動画処理スクリプトのデプロイ

2-3. 日次スケジューリング設定

想定される課題

  • ローカル環境でのGCP対向部分のモック化
  • APIキーなどSecret情報の扱い
gotoooogotoooo

1-1. dockerに慣れる

1-1-1. ローカルのコンテナ環境でHelloWorld

フォルダ構成
hello-docker/
|- app.py
|- Dockerfile
  1. app.py作成
app.py
print("Hello World!")

  1. Dockerfile作成
Dockerfile
# Python公式イメージをベースにする
FROM python:3.11-slim

# アプリ用ディレクトリを作成
WORKDIR /app

# スクリプトをコンテナにコピー
COPY app.py .

# コンテナ実行時にこのコマンドを動かす
CMD ["python", "app.py"]
  1. Dockerイメージ作成
cd hello-docker
docker image build -t hello-docker .
  1. Dockerコンテナ実行
docker run --rm hello-docker

※--rmオプションにより、スクリプト実行完了後にコンテナを削除する。

参考

https://qiita.com/JK447/items/bed378680eee49c5f600
https://www.kagoya.jp/howto/cloud/container/dockercommand/