Open3
GCPのCloudRunJobs覚書

はじめに
とある事情で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情報の扱い

1-1. dockerに慣れる
1-1-1. ローカルのコンテナ環境でHelloWorld
フォルダ構成
hello-docker/
|- app.py
|- Dockerfile
- app.py作成
app.py
print("Hello World!")
- Dockerfile作成
Dockerfile
# Python公式イメージをベースにする
FROM python:3.11-slim
# アプリ用ディレクトリを作成
WORKDIR /app
# スクリプトをコンテナにコピー
COPY app.py .
# コンテナ実行時にこのコマンドを動かす
CMD ["python", "app.py"]
- Dockerイメージ作成
cd hello-docker
docker image build -t hello-docker .
- Dockerコンテナ実行
docker run --rm hello-docker
※--rmオプションにより、スクリプト実行完了後にコンテナを削除する。
参考

1-2. GCP CloudRunに慣れる
1-2-1. 公式チュートリアル消化