rack апликација, config.ru - како да проверам дека е стартана во unicorn?

23 views
Skip to first unread message

Damjan

unread,
Jan 23, 2014, 11:55:15 AM1/23/14
to mk-ruby-u...@googlegroups.com
Не е моја идејата, али овие gitlab викаат
https://github.com/gitlabhq/gitlabhq/blob/master/config.ru

под 12та линија е нормалната rack апликација, но претходно викаат
unless defined?(PhusionPassenger)
... бла бла уклучи
Unicorn::WorkerKiller
end

Што е глупо, пошто не се само passenger и unicorn во светот (ја конкретно користам uwsgi со rack).

Сакам да го сменам ова со if defined?(Unicorn) али не знам дали е тоа баш така.
Што вика Rack стандардот?

--
дамјан

Dalibor Nasevic

unread,
Jan 23, 2014, 12:05:20 PM1/23/14
to mk-ruby-u...@googlegroups.com
On 23/01/2014 17:55, Damjan wrote:
> unless defined?(PhusionPassenger)
> ... бла бла уклучи Unicorn::WorkerKiller
> end

Незнам зошто ставиле default passenger, а fallback unicorn.

> Што е глупо, пошто не се само passenger и unicorn во светот (ја
> конкретно користам uwsgi со rack).

Треба да го смениш config.ru, само ова ти е потребно:

require ::File.expand_path('../config/environment', __FILE__)
run Gitlab::Application

и после стартуваш сервер:

rackup config.ru --port=4567

или било кој друг сервер, со command line tool-от од серверот.

д

Damjan

unread,
Jan 23, 2014, 12:28:53 PM1/23/14
to mk-ruby-u...@googlegroups.com
On Thursday, January 23, 2014 6:05:20 PM UTC+1, Dalibor Nasevic wrote:
On 23/01/2014 17:55, Damjan wrote:
> unless defined?(PhusionPassenger)
> ... бла бла уклучи Unicorn::WorkerKiller
> end

Незнам зошто ставиле default passenger, а fallback unicorn.

дека се retards
 
> Што е глупо, пошто не се само passenger и unicorn во светот (ја
> конкретно користам uwsgi со rack).

Треба да го смениш config.ru, само ова ти е потребно:

require ::File.expand_path('../config/environment',  __FILE__)
run Gitlab::Application

Тоа го правам во мојата копија, и морам да го преправам секогаш по git checkout на нова верзија на gitlab… sucks.


Ок направив мал тест со:

# config.ru
if defined?(Unicorn)
    puts "Unicorn was here **********************************************************"
end


class App

  def call(environ)
    [200, {'Content-Type' => 'text/html'}, ['Hello']]
  end

end

run App.new

и го стартав со uwsgi и unicorn
uwsgi --plugin rack --rack config.ru --http-socket :8080
и
unicorn -p 8081 config.ru

само во unicorn варијантата се испринта текстчето.

пратен pull request на gitlab
https://github.com/gitlabhq/gitlabhq/pull/6142
Reply all
Reply to author
Forward
0 new messages