昨日に引き続きデプロイの続きをするよ。今日の作業はまず Unicorn でアプリを動かすことだ。
Gemfile に unicorn を書き足して bundle install。
source "https://rubygems.org" gem 'sinatra' gem 'httpclient' gem 'json' gem 'filestorage' gem 'unicorn'
[lcstorage@rollo lcstorage]$ bundle install --path vendor/bundle
Fetching gem metadata from https://rubygems.org/………….
Resolving dependencies…
Using bundler 2.0.2
Using filestorage 0.1.0
Using httpclient 2.8.3
Using json 2.2.0
Fetching kgio 2.11.2
Installing kgio 2.11.2 with native extensions
Using mustermann 1.0.3
Using rack 2.0.7
Using rack-protection 2.0.7
Fetching raindrops 0.19.0
Installing raindrops 0.19.0 with native extensions
Using tilt 2.0.10
Using sinatra 2.0.7
Fetching unicorn 5.5.1
Installing unicorn 5.5.1 with native extensions
Bundle complete! 5 Gemfile dependencies, 12 gems now installed.
Bundled gems are installed into ./vendor/bundle
Unicorn の設定ファイル unicorn.conf を書く。
listen "9000" worker_processes 2 working_directory "/home/lcstorage/lcstorage" pid "/home/lcstorage/lcstorage/unicorn.pid" stdout_path "/home/lcstorage/lcstorage/unicorn.log" stderr_path "/home/lcstorage/lcstorage/unicorn.log" preload_app true
これでいいはず。試しに起動してみる。
[lcstorage@rollo lcstorage]$ bundle exec unicorn -c unicorn.conf -E production
昨日と同じく、別のコンソールからアクセス。
[takatoh@rollo ~]$ curl http://localhost:9000/ File not found.[takatoh@rollo ~]$ [takatoh@rollo ~]$ curl http://localhost:9000/path/to/file File not found.[takatoh@rollo ~]$
うん、ちゃんと File not found. が返ってきてる。昨日も書いたけど、返すファイルがまだ無いのでこれは正しい動作だ。
さて、あとは Nginx との連携だけど、これはエントリを分ける。というわけでとりあえずここまで。