GCPを使用する
cloud build
アプリケーションを任意のDockerコンテナ上でビルドすることができる。
下記のようなyamlファイルでdockerコンテナに対してコマンドを実行してビルドを行っていく。
code:yaml
steps:
- name: "コンテナイメージ"
gcloud app deploy
App Engineに対してgcloud(GCPのcliアプリケーション)によってデプロイを行うこともできる。
App Engineコンフィグファイルのドキュメント
App Engineはnode.jsなどが使用できるウェブアプリケーション用のサービス?。静的ファイルの配信条件・httpヘッダーの設定などがyamlファイルで設定できる。
code:yml
- url: /(.*\.(gif|png|jpg|ico|txt|svg|js|css))$
static_files: dist/\1
upload: dist/.*\.(gif|png|jpg|ico|txt|svg|js|css)$
static_filesの\1は正規表現のグループキャプチャ? \1は変数のようなイメージ。ulrがdist/**/**.gifなどだった場合、dist/**/*.gifを返す、というようなことが書いてあるのではないか。
実際の手順
(GCPの無料フルバージョン?を有効化)
Cloud BuildのコンソールにてCloud Buildを有効化
AppEngineでアプリの作成を選択
アプリの作成画面にて設定すること
アプリの作成でリージョンを選択→とりあえずus-central (デフォルト値)
App Engineデフォルトサービスアカウントを選択 (デフォルト値)
作成ボタンを押す
「IAMと管理」画面から、Cloub Buildサービスアカウントに対してApp Engine管理者のロールを追加する
Cloud Buildの設定メニューからサービスアカウントとApp Engine管理者のステータスを「有効」へ変更する
-------ここまでの手順でIAMのパーミッションエラーが解消された。
cliでgcloud initを行う(アカウントの設定、使用プロジェクトの設定が入る)
「APIとサービス」にてApp Engine Admin APIを有効化
code:sh
gcloud builds submit --project=<project_id> --config ./cloudbuild/cloudbuild.stg.yaml
Cloud BuildからAppEngineへデプロイする方法のドキュメント
デプロイされたページ
メモ
理解できなかったエラー。
cloud buildからapp engineへデプロイするときdefaultがどうのこうのと言われる。プロジェクト名がdefaultでないといけない?
defaultが1つはないといけない、というルールは存在するようだ。なぜだかはわからない。
code:txt