0
0

More than 1 year has passed since last update.

Capistranoを使って自動デプロイする

Posted at

某フリマアプリを作成した際、AWSのEC2を利用して自動デプロイするとき、ものすごく手間がかかったので備忘録。
詰まったところをかいつまんで載せる。
まず

adapter: mysql2
  database: (アプリ名)_production
  username: root
  password: <%= ENV['DATABASE_PASSWORD'] %>
  socket: /var/lib/mysql/mysql.sock

をconfig/database.ymlに記載するわけですが、この記載場所は、
プロダクションのところに記述します。
例えば、

production:
  <<: *default
  adapter: mysql2
  database: furima-(番号)_production
  username: root
  password: <%= ENV['DATABASE_PASSWORD'] %>
  socket: /var/lib/mysql/mysql.sock

といった感じに。

次につまづきそうになるのが、

[ec2-user@ip-172-31-23-189 ~]$ cd /var/www/[リポジトリ]
[ec2-user@ip-172-31-23-189 <リポジトリ名>] git pull origin master

のところですが、昨今のGitではmasterではなくmainブランチという名称なので、
config/deploy.rbを

set :branch, "main"    ←ここをmasterからmainにかきかえる

にする。
そして最後にCapistranoを使って自動デプロイする際は必ずローカルのターミナルで

% bundle exec cap production deploy

を実行する。

ここまででエラーがたくさん出たのですが、割愛。
大体がnginxでのエラーかマリアDB周りのエラーが多かった気がする。
nginxでエラーがでたらエラーログを見るわけですが、正直わからない・・・
マリアDBに関するエラーとしては最悪DBを一度作り直すという荒技があります。
参考リンク
https://qiita.com/potterqaz/items/ea6db5c5be2be389c0bb

あとはひたすらエラーとの勝負です。

nginxのエラーはとてもふりまわされたので、しっかり勉強したい。

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