LoginSignup
2
2

More than 3 years have passed since last update.

Cloud Run Buttonを設置してGitリポジトリにあるアプリケーションをサクッとGCPのCloud Runで動かす

Last updated at Posted at 2019-08-27

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用のブランチを作って指定すれば回避できるが本質的ではない。

2
2
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
2
2