Railsでデプロイする際に躓いた箇所がいくつか(というより沢山)あったので自分用メモも兼ねて書きます。
secret_key_base周り
Rails5.2からsecrets.ymlの代わりにcredentials.yml.encが生成されるようになりました。
rails newされると自動でapp/configにcredentials.yml.encとmaster.keyが生成されます。
master.keyが無い状態でrails credentials:editコマンドを実行するとmaster.keyが生成されますが、生成されたmaster.keyで復号できず困りました。
Rails 5.2 で ActiveSupport::MessageEncryptor::InvalidMessage
こちらの記事にある通り、ローカルにあるmaster.keyの中身をコピーしてproduction環境のmaster.keyに貼り付けたところいけました。
MySQLでAccess denied
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
このようなエラーが出てきて入れず。
どうやら自動で仮パスワードが発行されているようなので調べてみると、
cat /var/log/mysqld.log | grep password
2019-04-14T11:01:59.067618Z 1 [Note] A temporary password is generated for root@localhost: **********
となっていたのでこちらの仮パスワードで無事いけました。
Unicornが起動できない
Unicornを起動しようとしたところ以下のようなエラーが。
master failed to start, check stderr log for details
log/unicorn.logをチェックしたところ、
/home/fkdolly/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/unicorn-5.5.0/lib/unicorn.rb:49:in `block in builder': wrong number of arguments (given 0, expected 2) (ArgumentError)
調べてみるとUnicorn 5.5.0で出ているエラーのようでした。
Unicorn で Rails アプリが起動しなかったので対処
Unicorn Refreshing Gem List
bundle exec gem list | grep unicorn
unicorn (5.5.0)
同じく5.5.0でしたので、
group :production, :staging do
gem 'unicorn', '5.4.1'
end
bundle install
これでいけるかなと思ったらまだエラー。
5.5.0を削除するのを忘れていました。
bundle exec gem uninstall unicorn -v '5.5.0'
bundle update
これで無事に起動できました。