LoginSignup
10
5

More than 5 years have passed since last update.

AppEngine + Cloud SQL で Railsをデプロイする方法(GCP)

Last updated at Posted at 2018-09-05

GCPの準備

  1. プロジェクトを作成
  2. APIを有効化 Cloud SQL を有効化(確認?)
  3. APIを有効化 Cloud SQL APIを有効化
  4. Cloud SQLでインスタンスを作成
  5. AppEngineを有効にする
  6. Cloud IAMの設定を行い、buildできるようにする(app_engineのbuild時にcloudsqlを操作できるようにする)
$ gcloud projects add-iam-policy-binding [project_id] \
 --member=serviceAccount:[project_number]@cloudbuild.gserviceaccount.com --role=roles/editor

Railsのプロジェクトの準備

1. secret_keyを生成(後ほどyamlに記述します。)

$ bundle exec bin/rails secret

2. assetsのコンパイル

$ bundle exec bin/rails assets:precompile

3. app.yamlを追加

app.yml
entrypoint: bundle exec rackup --port $PORT
env: flex
runtime: ruby
env_variables:
  SECRET_KEY_BASE: [SECRET_KEY]

4. db情報の追記(config/database.yml)

プロダクジョンに以下のを追記

conf/database.yml
username: "[YOUR_MYSQL_USERNAME]"
password: "[YOUR_MYSQL_PASSWORD]"
socket:   "/cloudsql/[YOUR_INSTANCE_CONNECTION_NAME]"

デプロイ

1. [YOUR_INSTANCE_CONNECTION_NAME]を調べる

$ gcloud sql instances describe [インスタンスID]

2. データベースの準備 1 create

$ bundle exec rake appengine:exec -- bundle exec rake db:create
or
$ gcloud beta sql connect [インスタンスID] --user=[username] --password
> create database [database_name]

3. データベースの準備 2 Migration

$ bundle exec rake db:migrate
$ bundle exec rake appengine:exec -- bundle exec rake db:migrate

4. デプロイ

$ gcloud app deploy --no-promote
10
5
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
10
5