LoginSignup
13
13

More than 3 years have passed since last update.

GCPデプロイメモ

Posted at

手順

  1. gcpとgithubを連携させる https://github.com/apps/google-cloud-build
  2. githubの作業リポジトリを「Source Repositories」に同期
  3. .envを暗号化
  4. cloud buildの設定
  5. ブランチにpushされたときの動作をcloudbuild.yamlに記述

githubの作業リポジトリを「Source Repositories」に同期

  • 「Source Repositories」をクリック
  • リポジトリの追加
  • 外部リポジトリの接続
  • gitプロバイダを「GitHub」にする
  • githubにログインした状態で該当リポジトリを選択
  • github「aeon-ec-support」のdevelop/masterブランチにpush
  • 「Source Repositories」にデータが反映されることを確認

参考サイト

.envを暗号化

暗号鍵を作成

  • セキュリティ/暗号鍵でキーリング作成
  • 目的 対称暗号化/復号化
  • デフォルトのアルゴリズム Google対称キー

.envを暗号化

// ログイン
$ gcloud auth login

// Google Cloud SDK が Google アカウントへのアクセスをリクエストを許可してから
$ gcloud config set project {プロジェクトID}

// 暗号化
$ gcloud kms encrypt \
  --plaintext-file=.env \
  --ciphertext-file={ファイル名 例).env.enc} \
  --location=global \
  --keyring={キーリング名} \
  --key={キー名} \
  --project={プロジェクトID 例) hoge-fuga}

参考サイト

cloud buildの設定/起動

  • ビルド履歴のAPIを有効にする
  • ビルドトリガー「トリガーを作成」
  • トリガーのタイプ「ブランチ」
  • ブランチはstgなら「develop」/prodは「master」

cloudbuild.yamlにカスタムビルドを設定

  • .envを復号化
  • npmをinstall
  • package.jasonで指定したfirebase deployコマンドを実行
  • cloud buildのトリガーに環境変数を定義${_KMS_KEYRING}${_KMS_KEY}
cloudbuild.yaml
steps:
- name: 'gcr.io/cloud-builders/gcloud'
  args: [
    'kms',
    'decrypt',
    '--location=global',
    '--keyring=${_KMS_KEYRING}',
    '--key=${_KMS_KEY}',
    '--ciphertext-file=.env.enc',
    '--plaintext-file=.env'
  ]
- name: 'gcr.io/cloud-builders/yarn'
  args: ['install']
- name: 'gcr.io/cloud-builders/yarn'
  args: ['build']
- name: 'gcr.io/cloud-builders/yarn'
  args: ['run deploy']

参考サイト

app.yamlを作成

  • アプリをデプロイするためにapp.yamlを作成
app.yaml
# [START app_yaml]
runtime: nodejs8
# [END app_yaml]

App Engineを作成

  • アプリ作成のためのプラットフォーム
  • Node.jsで動かすのでpackage.jsonにversion8を指定
package.json
"engines": {
  "node": "8.x.x"
},
// App Engineを作成
$ gcloud app deploy --version 1 app.yaml --project=hoge-fuga

// localでデプロイコマンド
$ gcloud app deploy --version 1 app.yaml

参考サイト

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