updated on 2019-05-24
/config/master.key
が共有できない環境ではmaster keyを環境変数:RAILS_MASTER_KEYで指定します。
/config/master.key
が存在せず、環境変数:RAILS_MASTER_KEYでmaster keyが設定されてない場合はcredentials.yml.enc内のデータは読み取れません。
今回は/config/master.keyを作成しますが、EC2では $ export RAILS_MASTER_KEY="xxx"で設定したら読み込めなくなります。
作成したprojectsへ移動
$ cd /var/www/projects
bundlerをインストール
$ gem install bundler
Gemfileを作成
$ bundle init
Gemfileを編集
$ vim Gemfile
Railsバージョンを記載
gem "rails", '5.2.3'
vendor/bundleへgemをインストール
$ bundle install --path vendor/bundle --jobs=4 $ bundle exec rails -v
GitHubからアプリをクローン
$ git clone git@github.com:GitHubのユーザー名/リポジトリ名.git $ ls# リポジトリ名 Gemfile Gemfile.lock vendor
クローンしたディレクトリへ移動
$ cd リポジトリ名/
gemインストール
$ bundle install --path vendor/bundle
ローカル環境で開発していたときと同じ状態になるようにmaster.keyをconfig配下に作成する
$ cd config $ vi master.key --- .gitignoreされているマスターキーを貼り付ける ---
これで、credentialsで暗号化したファイルの内容を読み込むことができるようになる!
ちなみに...$ export RAILS_MASTER_KEY="xxx"で環境変数から設定したら読み込めませんでした。
初めにMySQLなり PostgreSQLなりでDBやユーザー、パスワード設定までdatabase.ymlと同じ設定の環境を用意する。
これをしとかないと、MySQLサーバー, PostgreSQLサーバーにそもそも接続ができない
ec2サーバーにsshした後に $ bundle exec rake db:schema:load RAILS_ENV="test" $ bundle exec rake db:schema:load RAILS_ENV="development" $ bundle exec rake db:schema:load RAILS_ENV="production"
テーブル一覧が作成されるはず!
ちなみに画像表示が必要な場合...クローンしたら
bundle exec rake assets:precompile RAILS_ENV="test"
bundle exec rake assets:precompile RAILS_ENV="development"
bundle exec rake assets:precompile RAILS_ENV="production"
も早めにしとこう