質問するログイン新規登録

質問編集履歴

2

config/deploy.rbファイルを追加致しました。

2021/01/12 09:27

投稿

shimataroo
shimataroo

スコア1

title CHANGED
File without changes
body CHANGED
@@ -137,4 +137,40 @@
137
137
  after_fork do |_server, _worker|
138
138
  defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection
139
139
  end
140
+ ```
141
+
142
+ ```deploy
143
+ # capistranoのバージョンを記載。固定のバージョンを利用し続け、バージョン変更によるトラブルを防止する
144
+ lock '3.15.0'
145
+
146
+ # Capistranoのログの表示に利用する
147
+ set :application, 'match-you'
148
+
149
+ # どのリポジトリからアプリをpullするかを指定する
150
+ set :repo_url, 'git@github.com:yutaro-kugishima/match-you.git'
151
+
152
+ # バージョンが変わっても共通で参照するディレクトリを指定
153
+ set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system', 'public/uploads')
154
+
155
+ set :rbenv_type, :user
156
+ set :rbenv_ruby, '2.6.5' #カリキュラム通りに進めた場合、’2.6.5’ です
157
+
158
+ # どの公開鍵を利用してデプロイするか
159
+ set :ssh_options, auth_methods: ['publickey'],
160
+ keys: ['~/.ssh/sample.pem']
161
+
162
+ # プロセス番号を記載したファイルの場所
163
+ set :unicorn_pid, -> { "#{shared_path}/tmp/pids/unicorn.pid" }
164
+
165
+ # Unicornの設定ファイルの場所
166
+ set :unicorn_config_path, -> { "#{current_path}/config/unicorn.rb" }
167
+ set :keep_releases, 5
168
+
169
+ # デプロイ処理が終わった後、Unicornを再起動するための記述
170
+ after 'deploy:publishing', 'deploy:restart'
171
+ namespace :deploy do
172
+ task :restart do
173
+ invoke 'unicorn:restart'
174
+ end
175
+ end
140
176
  ```

1

unicorn.rbのファイルの中身を追加いたしました。

2021/01/12 09:27

投稿

shimataroo
shimataroo

スコア1

title CHANGED
File without changes
body CHANGED
@@ -77,4 +77,64 @@
77
77
  ### 補足情報(FW/ツールのバージョンなど)
78
78
  ruby 2.6.5
79
79
  rails 6.0.0
80
- unicorn 5.4.1
80
+ unicorn 5.4.1
81
+
82
+ unicorn.rb ※自動デプロイまではスクールのカリキュラムを参考に「unicorn.rb」ファイルで進めていました。ドメイン取得以降は別の記事を参照していたため、unicorn.conf.rbコマンドで実行してしまっていました。。
83
+
84
+ ```unicorn
85
+ #サーバ上でのアプリケーションコードが設置されているディレクトリを変数に入れておく
86
+ app_path = File.expand_path('../../../', __FILE__) # 「../」が一つ増えている
87
+
88
+ #アプリケーションサーバの性能を決定する
89
+ worker_processes 1
90
+
91
+ #アプリケーションの設置されているディレクトリを指定
92
+ working_directory "#{app_path}/current" # 「current」を指定
93
+
94
+ #Unicornの起動に必要なファイルの設置場所を指定
95
+ pid "#{app_path}/shared/tmp/pids/unicorn.pid" # 「shared」の中を参照するよう変更
96
+
97
+ #ポート番号を指定
98
+ listen "#{app_path}/shared/tmp/sockets/unicorn.sock" # 「shared」の中を参照するよう変更
99
+
100
+ #エラーのログを記録するファイルを指定
101
+ stderr_path "#{app_path}/shared/log/unicorn.stderr.log" # 「shared」の中を参照するよう変更
102
+
103
+ #通常のログを記録するファイルを指定
104
+ stdout_path "#{app_path}/shared/log/unicorn.stdout.log" # 「shared」の中を参照するよう変更
105
+
106
+ #Railsアプリケーションの応答を待つ上限時間を設定
107
+ timeout 60
108
+
109
+ #以下は応用的な設定なので説明は割愛
110
+
111
+ preload_app true
112
+ GC.respond_to?(:copy_on_write_friendly=) && GC.copy_on_write_friendly = true
113
+
114
+ check_client_connection false
115
+
116
+ run_once = true
117
+
118
+ before_fork do |server, worker|
119
+ defined?(ActiveRecord::Base) &&
120
+ ActiveRecord::Base.connection.disconnect!
121
+
122
+ if run_once
123
+ run_once = false # prevent from firing again
124
+ end
125
+
126
+ old_pid = "#{server.config[:pid]}.oldbin"
127
+ if File.exist?(old_pid) && server.pid != old_pid
128
+ begin
129
+ sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
130
+ Process.kill(sig, File.read(old_pid).to_i)
131
+ rescue Errno::ENOENT, Errno::ESRCH => e
132
+ logger.error e
133
+ end
134
+ end
135
+ end
136
+
137
+ after_fork do |_server, _worker|
138
+ defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection
139
+ end
140
+ ```