Cloud Run Buttonとは
Deploy to Heroku Buttonと同じようにGitリポジトリにあるアプリケーションをボタンワンクリックでGCPのCloud Runにデプロイすることができます。GitリポジトリのREADMEに設置することが多いと思います。
Cloud Runはコンテナアプリケーションをサーバーレスで動かせるサービスです。
herokuではDeploy to Heroku Buttonをクリックすると分かりやすい専用の画面が表示されますが、Cloud Run ButtonをクリックするとGCPのCloud Shellの画面が表示され、そこでデプロイが始まります。GCPっぽさがありますね。
GoogleによるCloud Run Button紹介記事はこちら
Cloud Run Buttonの設置の仕方
https://github.com/GoogleCloudPlatform/cloud-run-button にすべてが書かれていますが、手順を書き残しておきます。
動かしたいアプリケーションのGitリポジトリのREADMEにCloud Run Buttonをおく
以下の画像リンクをREADMEに書きます。
[![Run on Google Cloud](https://storage.googleapis.com/cloudrun/button.svg)](https://console.cloud.google.com/cloudshell/editor?shellonly=true&cloudshell_image=gcr.io/cloudrun/button&cloudshell_git_repo=YOUR_HTTP_GIT_URL)
YOUR_HTTP_GIT_URLはそのGitURLです。(例えばhttps://github.com/GoogleCloudPlatform/cloud-run-hello.git
)
(Optional) Dockerfileを用意
そのリポジトリにDockerfileがあるとdocker build時に使ってくれます。
もしDockerfileがない場合、Cloud Native Buildpacksの仕様にそってコンテナ化してくれます。
Cloud Native Buildpacksについて知りたい方はこちら
リポジトリパラメータのカスタマイズ
-
cloudshell_git_branch=BRANCH_NAME
をCloud Run Buttonのリンクのクエリパラメータに追加すると、指定したブランチを使用してくれます -
cloudshell_dir=SUBDIR
をCloud Run Buttonのリンクのクエリパラメータに追加すると、指定したサブディレクトリを使用してくれます
デプロイパラメータの指定
リポジトリのrootにapp.jsonがあれば、サービス名や環境変数をカスタマイズできる
{
"name": "foo-app",
"env": {
"BACKGROUND_COLOR": {
"description": "specify a css color",
"value": "#fefefe",
"required": false
},
"TITLE": {
"description": "title for your site"
}
}
}
上記のようなapp.jsonだと、foo-app
という名前でCloud Runのサービスが作られる。未指定だとリポジトリ名がサービス名になる
env
は環境変数になる。
注意点
herokuのapp.jsonとバッティングする。
たとえばherokuのapp.jsonにはaddons
フィールドが指定できるが、Cloud Run Buttonではそのフィールドがあるとエラーになる。。
cloudshell_git_branch=BRANCH_NAME
でブランチ名が指定できるので、Cloud Run用のブランチを作って指定すれば回避できるが本質的ではない。