質問編集履歴

2

config/deploy.rbを追記しました。

2019/04/22 15:43

投稿

koume
koume

スコア458

test CHANGED
File without changes
test CHANGED
@@ -307,3 +307,215 @@
307
307
  end
308
308
 
309
309
  ```
310
+
311
+ 追記 (回答に記述したファイル内容がわかりにくいので改めて追記しました。)
312
+
313
+ ```ここに言語を入力
314
+
315
+ config/deploy.rb
316
+
317
+
318
+
319
+ lock "~> 3.11.0"
320
+
321
+
322
+
323
+ set :application, "XXXXXX"
324
+
325
+ set :rails_env, "production"
326
+
327
+ set :repo_url, "https://github.com/XXXXXXXXXXX/XXXXX.git"
328
+
329
+ set :branch, 'master'
330
+
331
+ set :conditionally_migrate, true
332
+
333
+
334
+
335
+ set :user, 'XXXXX'
336
+
337
+
338
+
339
+ set :pty, true
340
+
341
+ set :use_sudo, false
342
+
343
+ set :stage, :production
344
+
345
+ set :deploy_via, :remote_cache
346
+
347
+ set :deploy_to, "/usr/share/nginx/html"
348
+
349
+ set :format, :pretty
350
+
351
+ set :log_level, :debug
352
+
353
+ set :keep_releases, 5
354
+
355
+
356
+
357
+ set :rbenv_type, :user
358
+
359
+
360
+
361
+ set :rbenv_ruby_version, 'ruby_2.3.1'
362
+
363
+ set :rbenv_custom_path, '/home/XXXXX/.rbenv'
364
+
365
+
366
+
367
+ set :linked_dirs, fetch(:linked_dirs, []).push(
368
+
369
+ 'log',
370
+
371
+ 'tmp/pids',
372
+
373
+ 'tmp/cache',
374
+
375
+ 'tmp/sockets',
376
+
377
+ 'vendor/bundle',
378
+
379
+ 'public/system',
380
+
381
+ 'public/uploads',
382
+
383
+ 'public/tmp',
384
+
385
+ 'db'
386
+
387
+ )
388
+
389
+ set :linked_files, fetch(:linked_files, []).push(
390
+
391
+ 'config/database.yml',
392
+
393
+ 'config/secrets.yml',
394
+
395
+ '.env'
396
+
397
+ )
398
+
399
+ set :whenever_identifier, -> { "#{fetch(:application)}_#{fetch(:stage)}" }
400
+
401
+ set :whenever_roles, ->{ :batch }
402
+
403
+
404
+
405
+
406
+
407
+ namespace :deploy do
408
+
409
+ desc 'Restart application'
410
+
411
+ task :restart do
412
+
413
+ invoke 'unicorn:restart'
414
+
415
+ end
416
+
417
+
418
+
419
+ desc 'Create database'
420
+
421
+ task :db_create do
422
+
423
+ on roles(:db) do |host|
424
+
425
+ with rails_env: fetch(:rails_env) do
426
+
427
+ within current_path do
428
+
429
+ execute :bundle, :exec, :rake, 'db:create'
430
+
431
+ end
432
+
433
+ end
434
+
435
+ end
436
+
437
+ end
438
+
439
+
440
+
441
+ desc 'Run seed'
442
+
443
+ task :seed do
444
+
445
+ on roles(:app) do
446
+
447
+ with rails_env: fetch(:rails_env) do
448
+
449
+ within current_path do
450
+
451
+ execute :bundle, :exec, :rake, 'db:seed'
452
+
453
+ end
454
+
455
+ end
456
+
457
+ end
458
+
459
+ end
460
+
461
+
462
+
463
+ after :publishing, :restart
464
+
465
+
466
+
467
+ after :restart, :clear_cache do
468
+
469
+ on roles(:web), in: :groups, limit: 3, wait: 10 do
470
+
471
+ end
472
+
473
+ end
474
+
475
+ end
476
+
477
+
478
+
479
+
480
+
481
+ namespace :maintenance do
482
+
483
+ desc 'start maintenance'
484
+
485
+ task :on do
486
+
487
+ on roles(:web) do
488
+
489
+ target_dir = "#{shared_path}/public/tmp"
490
+
491
+ target_path = "#{target_dir}/maintenance.html"
492
+
493
+ source_path = "#{release_path}/public/maintenance.html"
494
+
495
+ execute :mkdir, '-p', target_dir
496
+
497
+ execute :cp, '-f', source_path, target_path
498
+
499
+ end
500
+
501
+ end
502
+
503
+
504
+
505
+ desc 'stop maintenance'
506
+
507
+ task :off do
508
+
509
+ on roles(:web) do
510
+
511
+ target = "#{shared_path}/public/tmp/maintenance.html"
512
+
513
+ execute :rm, target if test "[ -f #{target} ]"
514
+
515
+ end
516
+
517
+ end
518
+
519
+ end
520
+
521
+ ```

1

processが記述されているファイルを追記しました。

2019/04/22 15:43

投稿

koume
koume

スコア458

test CHANGED
File without changes
test CHANGED
@@ -213,3 +213,97 @@
213
213
 
214
214
 
215
215
  どなたか詳しい方のご教示お願いします。
216
+
217
+
218
+
219
+ 追記 (Processが記述されているファイルがあるので追記します。)
220
+
221
+ ```ここに言語を入力
222
+
223
+ config/unicorn/production.rb
224
+
225
+
226
+
227
+ #ワーカーの数。後述
228
+
229
+ $worker = 2
230
+
231
+ #何秒経過すればワーカーを削除するのかを決める
232
+
233
+ $timeout = 30
234
+
235
+ #自分のアプリケーション名、currentがつくことに注意。
236
+
237
+ $app_dir = "/usr/share/nginx/html/current"
238
+
239
+ #リクエストを受け取るポート番号を指定。後述
240
+
241
+ $listen = File.expand_path 'tmp/sockets/.unicorn.sock', $app_dir
242
+
243
+ #PIDの管理ファイルディレクトリ
244
+
245
+ $pid = File.expand_path 'tmp/pids/unicorn.pid', $app_dir
246
+
247
+ #エラーログを吐き出すファイルのディレクトリ
248
+
249
+ $std_log = File.expand_path 'log/unicorn.log', $app_dir
250
+
251
+
252
+
253
+ # 上記で設定したものが適応されるよう定義
254
+
255
+ worker_processes $worker
256
+
257
+ working_directory $app_dir
258
+
259
+ stderr_path $std_log
260
+
261
+ stdout_path $std_log
262
+
263
+ timeout $timeout
264
+
265
+ listen $listen
266
+
267
+ pid $pid
268
+
269
+
270
+
271
+ #ホットデプロイをするかしないかを設定
272
+
273
+ preload_app true
274
+
275
+
276
+
277
+ #fork前に行うことを定義。後述
278
+
279
+ before_fork do |server, worker|
280
+
281
+ defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!
282
+
283
+ old_pid = "#{server.config[:pid]}.oldbin"
284
+
285
+ if old_pid != server.pid
286
+
287
+ begin
288
+
289
+ Process.kill "QUIT", File.read(old_pid).to_i
290
+
291
+ rescue Errno::ENOENT, Errno::ESRCH
292
+
293
+ end
294
+
295
+ end
296
+
297
+ end
298
+
299
+
300
+
301
+ #fork後に行うことを定義。後述
302
+
303
+ after_fork do |server, worker|
304
+
305
+ defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
306
+
307
+ end
308
+
309
+ ```