質問編集履歴
2
ログ、各staging\.rbの内容を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -83,7 +83,74 @@
|
|
83
83
|
end
|
84
84
|
|
85
85
|
```
|
86
|
+
__追加__
|
87
|
+
ログ
|
88
|
+
```
|
89
|
+
INFO [47bc3a49] Running $HOME/.rbenv/bin/rbenv exec bundle exec unicorn -c /var/www/myapp/current/config/unicorn/staging.rb -E staging -D as yappari@(ipアドレス)
|
90
|
+
DEBUG [47bc3a49] Command: cd /var/www/myapp/current && ( export PATH="/usr/local/rbenv/shims:/usr/local/rbenv/bin:$PATH" RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.3.0" RAILS_ENV="staging" ; $HOME/.rbenv/bin/rbenv exec bundle exec unicorn -c /var/www/myapp/current/config/unicorn/staging.rb -E staging -D )
|
91
|
+
DEBUG [47bc3a49] bundler: failed to load command: unicorn (/var/www/myapp/shared/bundle/ruby/2.3.0/bin/unicorn)
|
92
|
+
```
|
93
|
+
config/unicorn/staging.rb
|
94
|
+
```
|
95
|
+
@app_path = '/var/www/myapp'
|
96
|
+
working_directory @app_path + "/current"
|
86
97
|
|
98
|
+
worker_processes 2
|
99
|
+
preload_app true
|
100
|
+
timeout 30
|
101
|
+
listen "/tmp/unicorn.sock", :backlog => 64
|
102
|
+
pid "/var/www/myapp/shared/tmp/pids/unicorn.pid"
|
103
|
+
|
104
|
+
stderr_path "#{@app_path}/log/unicorn.stderr.log"
|
105
|
+
stdout_path "#{@app_path}/log/unicorn.stdout.log"
|
106
|
+
|
107
|
+
before_fork do |server, worker|
|
108
|
+
ENV['BUNDLE_GEMFILE'] = File.expand_path('Gemfile', ENV['RAILS_ROOT'])
|
109
|
+
end
|
110
|
+
|
111
|
+
before_fork do |server, worker|
|
112
|
+
if defined?(ActiveRecord::Base)
|
113
|
+
ActiveRecord::Base.connection.disconnect!
|
114
|
+
end
|
115
|
+
|
116
|
+
old_pid = "#{server.config[:pid]}.oldbin"
|
117
|
+
if File.exists?(old_pid) && server.pid != old_pid
|
118
|
+
begin
|
119
|
+
Process.kill("QUIT", File.read(old_pid).to_i)
|
120
|
+
rescue Errno::ENOENT, Errno::ESRCH
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
after_fork do |server, worker|
|
126
|
+
if defined?(ActiveRecord::Base)
|
127
|
+
ActiveRecord::Base.establish_connection
|
128
|
+
end
|
129
|
+
end
|
130
|
+
```
|
131
|
+
config/deploy/staging.rb
|
132
|
+
```
|
133
|
+
set :rails_env, "staging"
|
134
|
+
set :unicorn_rack_env, "staging"
|
135
|
+
set :deploy_to, '/var/www/myapp'
|
136
|
+
|
137
|
+
user = "yappari"
|
138
|
+
ipaddress = "(ipアドレス)"
|
139
|
+
|
140
|
+
role :app, ["#{user}@#{ipaddress}"]
|
141
|
+
role :web, ["#{user}@#{ipaddress}"]
|
142
|
+
role :db, ["#{user}@#{ipaddress}"]
|
143
|
+
|
144
|
+
server '(ipアドレス)', user: 'yappari', roles: %w{web app}
|
145
|
+
|
146
|
+
set :ssh_options, {
|
147
|
+
keys: %w(/home/vagrant/.ssh/id_rsa),
|
148
|
+
forward_agent: true,
|
149
|
+
auth_methods: %w(publickey),
|
150
|
+
port: (ポート番号)
|
151
|
+
}
|
152
|
+
|
153
|
+
```
|
87
154
|
どうかお力を貸していただけないでしょうか?
|
88
155
|
|
89
156
|
情報を追加いたしました。よろしくお願いいたします。
|
1
ソースコードを追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,8 +2,9 @@
|
|
2
2
|
|
3
3
|
http://qiita.com/zaru/items/9e02706b27094ce36902
|
4
4
|
こちらのサイトを参考にさせていただきまして、railsアプリのデプロイに挑戦しています。
|
5
|
-
|
5
|
+
ローカルのCentOSからさくらvpsへのデプロイです。
|
6
6
|
|
7
|
+
アプリ自体はrails new sample しただけの空っぽです。
|
7
8
|
|
8
9
|
$ bundle exec cap staging deploy:checkまでは成功しました。
|
9
10
|
|
@@ -24,4 +25,65 @@
|
|
24
25
|
手が出せません
|
25
26
|
|
26
27
|
|
28
|
+
|
29
|
+
###補足のソースコード
|
30
|
+
Capfile
|
31
|
+
```
|
32
|
+
require 'capistrano/setup'
|
33
|
+
require 'capistrano/deploy'
|
34
|
+
|
35
|
+
require 'sshkit/sudo'
|
36
|
+
# https://github.com/capistrano-plugins/capistrano-safe-deploy-to
|
37
|
+
require 'capistrano/safe_deploy_to' # 追加
|
38
|
+
|
39
|
+
# rbenvを使用している場合
|
40
|
+
require 'capistrano/rbenv'
|
41
|
+
|
42
|
+
# デプロイ先のサーバで、ユーザディレクトリでrbenvをインストールしている場合
|
43
|
+
set :rbenv_type, :user
|
44
|
+
set :rbenv_ruby, '2.3.0'
|
45
|
+
|
46
|
+
require 'capistrano/bundler'
|
47
|
+
require 'capistrano/rails/assets'
|
48
|
+
require 'capistrano/rails/migrations'
|
49
|
+
|
50
|
+
require 'capistrano3/unicorn'
|
51
|
+
|
52
|
+
# Rails4から分離したsecrets.ymlの環境変数を .envファイルで管理する
|
53
|
+
set :linked_files, %w{config/secrets.yml .env}
|
54
|
+
|
55
|
+
# タスクを読み込むけど、今回は特に使わない
|
56
|
+
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
|
57
|
+
```
|
58
|
+
deploy.rb
|
59
|
+
```
|
60
|
+
lock '3.4.1'
|
61
|
+
|
62
|
+
set :application, 'sample'
|
63
|
+
set :repo_url, 'git@github.com:yappari/sample.git'
|
64
|
+
set :branch, 'master'
|
65
|
+
set :deploy_to, '/var/www/myapp'
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
set :scm, :git
|
70
|
+
set :log_level, :debug
|
71
|
+
set :pty, true
|
72
|
+
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets bundle public/system public/assets}
|
73
|
+
set :default_env, { path: "/usr/local/rbenv/shims:/usr/local/rbenv/bin:$PATH" }
|
74
|
+
set :keep_releases, 5
|
75
|
+
|
76
|
+
after 'deploy:publishing', 'deploy:restart'
|
77
|
+
namespace :deploy do
|
78
|
+
|
79
|
+
desc 'Restart application'
|
80
|
+
task :restart do
|
81
|
+
invoke 'unicorn:restart'
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
```
|
86
|
+
|
27
|
-
どうかお力を貸していただけないでしょうか?
|
87
|
+
どうかお力を貸していただけないでしょうか?
|
88
|
+
|
89
|
+
情報を追加いたしました。よろしくお願いいたします。
|