質問編集履歴

2

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

2021/01/12 09:27

投稿

shimataroo
shimataroo

スコア1

test CHANGED
File without changes
test CHANGED
@@ -277,3 +277,75 @@
277
277
  end
278
278
 
279
279
  ```
280
+
281
+
282
+
283
+ ```deploy
284
+
285
+ # capistranoのバージョンを記載。固定のバージョンを利用し続け、バージョン変更によるトラブルを防止する
286
+
287
+ lock '3.15.0'
288
+
289
+
290
+
291
+ # Capistranoのログの表示に利用する
292
+
293
+ set :application, 'match-you'
294
+
295
+
296
+
297
+ # どのリポジトリからアプリをpullするかを指定する
298
+
299
+ set :repo_url, 'git@github.com:yutaro-kugishima/match-you.git'
300
+
301
+
302
+
303
+ # バージョンが変わっても共通で参照するディレクトリを指定
304
+
305
+ set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system', 'public/uploads')
306
+
307
+
308
+
309
+ set :rbenv_type, :user
310
+
311
+ set :rbenv_ruby, '2.6.5' #カリキュラム通りに進めた場合、’2.6.5’ です
312
+
313
+
314
+
315
+ # どの公開鍵を利用してデプロイするか
316
+
317
+ set :ssh_options, auth_methods: ['publickey'],
318
+
319
+ keys: ['~/.ssh/sample.pem']
320
+
321
+
322
+
323
+ # プロセス番号を記載したファイルの場所
324
+
325
+ set :unicorn_pid, -> { "#{shared_path}/tmp/pids/unicorn.pid" }
326
+
327
+
328
+
329
+ # Unicornの設定ファイルの場所
330
+
331
+ set :unicorn_config_path, -> { "#{current_path}/config/unicorn.rb" }
332
+
333
+ set :keep_releases, 5
334
+
335
+
336
+
337
+ # デプロイ処理が終わった後、Unicornを再起動するための記述
338
+
339
+ after 'deploy:publishing', 'deploy:restart'
340
+
341
+ namespace :deploy do
342
+
343
+ task :restart do
344
+
345
+ invoke 'unicorn:restart'
346
+
347
+ end
348
+
349
+ end
350
+
351
+ ```

1

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

2021/01/12 09:27

投稿

shimataroo
shimataroo

スコア1

test CHANGED
File without changes
test CHANGED
@@ -157,3 +157,123 @@
157
157
  rails 6.0.0
158
158
 
159
159
  unicorn 5.4.1
160
+
161
+
162
+
163
+ unicorn.rb ※自動デプロイまではスクールのカリキュラムを参考に「unicorn.rb」ファイルで進めていました。ドメイン取得以降は別の記事を参照していたため、unicorn.conf.rbコマンドで実行してしまっていました。。
164
+
165
+
166
+
167
+ ```unicorn
168
+
169
+ #サーバ上でのアプリケーションコードが設置されているディレクトリを変数に入れておく
170
+
171
+ app_path = File.expand_path('../../../', __FILE__) # 「../」が一つ増えている
172
+
173
+
174
+
175
+ #アプリケーションサーバの性能を決定する
176
+
177
+ worker_processes 1
178
+
179
+
180
+
181
+ #アプリケーションの設置されているディレクトリを指定
182
+
183
+ working_directory "#{app_path}/current" # 「current」を指定
184
+
185
+
186
+
187
+ #Unicornの起動に必要なファイルの設置場所を指定
188
+
189
+ pid "#{app_path}/shared/tmp/pids/unicorn.pid" # 「shared」の中を参照するよう変更
190
+
191
+
192
+
193
+ #ポート番号を指定
194
+
195
+ listen "#{app_path}/shared/tmp/sockets/unicorn.sock" # 「shared」の中を参照するよう変更
196
+
197
+
198
+
199
+ #エラーのログを記録するファイルを指定
200
+
201
+ stderr_path "#{app_path}/shared/log/unicorn.stderr.log" # 「shared」の中を参照するよう変更
202
+
203
+
204
+
205
+ #通常のログを記録するファイルを指定
206
+
207
+ stdout_path "#{app_path}/shared/log/unicorn.stdout.log" # 「shared」の中を参照するよう変更
208
+
209
+
210
+
211
+ #Railsアプリケーションの応答を待つ上限時間を設定
212
+
213
+ timeout 60
214
+
215
+
216
+
217
+ #以下は応用的な設定なので説明は割愛
218
+
219
+
220
+
221
+ preload_app true
222
+
223
+ GC.respond_to?(:copy_on_write_friendly=) && GC.copy_on_write_friendly = true
224
+
225
+
226
+
227
+ check_client_connection false
228
+
229
+
230
+
231
+ run_once = true
232
+
233
+
234
+
235
+ before_fork do |server, worker|
236
+
237
+ defined?(ActiveRecord::Base) &&
238
+
239
+ ActiveRecord::Base.connection.disconnect!
240
+
241
+
242
+
243
+ if run_once
244
+
245
+ run_once = false # prevent from firing again
246
+
247
+ end
248
+
249
+
250
+
251
+ old_pid = "#{server.config[:pid]}.oldbin"
252
+
253
+ if File.exist?(old_pid) && server.pid != old_pid
254
+
255
+ begin
256
+
257
+ sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
258
+
259
+ Process.kill(sig, File.read(old_pid).to_i)
260
+
261
+ rescue Errno::ENOENT, Errno::ESRCH => e
262
+
263
+ logger.error e
264
+
265
+ end
266
+
267
+ end
268
+
269
+ end
270
+
271
+
272
+
273
+ after_fork do |_server, _worker|
274
+
275
+ defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection
276
+
277
+ end
278
+
279
+ ```