動機
少し古い話ですが、Container Registryは2025/3くらいから徐々に停止しています。プロダクトによって具体的な停止のタイミングはいくらか異なるようです。これに伴いContainer Registry→Artifact Registryへの移行が必須となるのですが、この移行により思わぬ影響があったので、ここに記しておきます。
手順
移行は「Container Registry から Artifact Registry に自動的に移行する」による自動移行ではなく、「標準リポジトリへの移行」に従って手作業で移行しています。具体的に変わるのは、Cloud Buildによるコンテナのレジストリへの保存や、レジストリから取り出してCloud Runにデプロイする部分のみだと認識していました。
実際のコマンドだと以下のようになります。
Container Registry
gcloud builds submit --tag gcr.io/プロジェクト名/イメージ名
gcloud run deploy apply --image gcr.io/プロジェクト名/イメージ名 --region=リージョン名
Artifact Registry
gcloud builds submit . --pack image=リージョン名-docker.pkg.dev/プロジェクト名/リポジトリ名/イメージ名
gcloud run deploy apply --image リージョン名-docker.pkg.dev/プロジェクト名/リポジトリ名/イメージ名 --region=リージョン名
その他のソースなどは変更不要の認識です。
現象
ENV 環境変数名 値の文字列
Artifact RegistryだとDockerfileの環境変数は反映されない様子です。
対処
gcloud run deploy apply --image リージョン名-docker.pkg.dev/プロジェクト名/リポジトリ名/イメージ名 --set-env-vars="環境変数名=値の文字列" --region=リージョン名
これで解決しました。
ちなみに、複数の環境変数を定義したい場合、"--set-env-vars"の値をコンマで区切って並べます。こんな感じ。
--set-env-vars="環境変数名1=値の文字列1","環境変数名2=値の文字列2"
0 件のコメント:
コメントを投稿