質問編集履歴
2
config/deploy.rbファイルを追加致しました。
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のファイルの中身を追加いたしました。
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
|
+
```
|