{"id":472,"date":"2013-10-08T20:25:43","date_gmt":"2013-10-08T11:25:43","guid":{"rendered":"http:\/\/blog.tanitanin.net\/?p=472"},"modified":"2013-10-08T21:14:09","modified_gmt":"2013-10-08T12:14:09","slug":"capistrano-v3%e3%82%92%e8%a9%a6%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b1","status":"publish","type":"post","link":"https:\/\/blog.tanitanin.net\/?p=472","title":{"rendered":"Capistrano v3\u3092\u8a66\u3057\u3066\u307f\u308b(1)"},"content":{"rendered":"<p>\u3053\u3093\u306b\u3061\u306f\uff0c\u305f\u306b\u305f\u306b\u3067\u3059\uff0e<\/p>\n<p>Deploy\u306e\u305f\u3081\u306e\u30c4\u30fc\u30eb\u3068\u3057\u3066\u6709\u540d\u306aCapistrano\u3067\u3059\u304c\uff0c6\u6708\u306b\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u3057\u3066v3\u306b\u306a\u3063\u3066\u3044\u307e\u3057\u305f\uff0e\uff08\u3044\u3064\u306e\u9593\u306b\u3084\u3089\u30fb\u30fb\u30fb\uff09<\/p>\n<p>v3\u306b\u306a\u3063\u3066\u4eca\u307e\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u5225\u306b\u5165\u308c\u3066\u4f7f\u3046\u306e\u304c\u5f53\u305f\u308a\u524d\u3060\u3063\u305fcapistrano\u3082\uff0c<br \/>\nRails\u3068\u5206\u96e2\u3057\u305f\u308aMultistage\u3092\u53d6\u308a\u8fbc\u3093\u3060\u308a\u3068\u305a\u3044\u3076\u3093\u4fbf\u5229\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e<br \/>\nRails\u306b\u304a\u4e16\u8a71\u306b\u306a\u3089\u306a\u3044\u8eab\u3068\u3057\u3066\u306f\uff0c\u3068\u3066\u3082\u3042\u308a\u304c\u305f\u3044\u3067\u3059\u306d\uff0e<\/p>\n<p>\u305d\u3053\u3067\uff0c\u65b0\u3057\u304f\u306a\u3063\u305fCapistrano\u304c\u3069\u3093\u306a\u3082\u306e\u304b\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e<\/p>\n<p>* Gemset\u306e\u4f5c\u6210<\/p>\n<p>\u3068\u308a\u3042\u3048\u305aRVM\u3067gemset\u3068\u3064\u304f\u3063\u3066\u304a\u304d<\/p>\n<pre>\r\n$ mkdir capis-test && cd capis-test\r\n$ rvm rvmrc create 2.0.0@capis-test\r\n$ cd .\r\n<\/pre>\n<p>yes\u3092\u5165\u308c\u3066gemset\u306e\u4f5c\u6210\u3092\u5b8c\u4e86\u3057\u307e\u3059\uff0e&#8221;cd .&#8221;\u306f\u305d\u306e\u307e\u307e\u3060\u3068gemset\u3092\u8aad\u307f\u8fbc\u3093\u3067\u304f\u308c\u306a\u304b\u3063\u305f\u306e\u3067\u305d\u306e\u5bfe\u7b56\u3067\uff0e<\/p>\n<p>* Bundle<\/p>\n<p>Bundle\u306e\u521d\u671f\u5316\u3092\u3057\u3066Gemfile\u3092\u4f5c\u6210\u3057\u307e\u3059\uff0e<\/p>\n<pre>\r\n$ bundle init\r\nWriting new Gemfile to \/****\/capis-test\/Gemfile\r\n<\/pre>\n<p>Gemfile\u306bcapistrano v3\u3068rvm\u3092\u3092\u5165\u308c\u307e\u3059<\/p>\n<pre>\r\n# A sample Gemfile\r\nsource \"https:\/\/rubygems.org\"\r\nruby \"2.0.0\"\r\n\r\n# Deploy tools\r\ngroup :deploy do\r\n  gem 'capistrano', \"~>3.0.0\", github: 'capistrano\/capistrano'\r\n  gem 'capistrano-bundler', github: \"capistrano\/bundler\" # cap bundle:install\u3067\u30c7\u30d7\u30ed\u30a4\u5148\u306ebundle\u74b0\u5883\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u308b\r\n  gem 'capistrano-rvm', github: \"capistrano\/rvm\" # setup\u6642\u306bRVM\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304f\u308c\u308b\r\n  # gem 'capistrano-rails', github: \"capistrano\/rails\" # Rails\u3092\u4f7f\u3046\u5834\u5408\u306f\u5165\u308c\u308b\r\nend\r\n<\/pre>\n<p>\u6700\u5f8c\u306bBundle install\u3067\u5b8c\u4e86<\/p>\n<pre>\r\n$ bundle install\r\nFetching git:\/\/github.com\/capistrano\/capistrano.git\r\n....\u7565\r\nYour bundle is complete!\r\nUse `bundle show [gemname]` to see where a bundled gem is installed.\r\n<\/pre>\n<p>* Capistrano<\/p>\n<p>Capistrano\u306e\u521d\u671f\u5316\u306fcap install\u3067\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e<\/p>\n<pre>\r\n$ bundle exec cap install\r\nmkdir -p config\/deploy\r\ncreate config\/deploy.rb\r\ncreate config\/deploy\/staging.rb\r\ncreate config\/deploy\/production.rb\r\nmkdir -p lib\/capistrano\/tasks\r\nCapified\r\n<\/pre>\n<p>Capified\u3068\u51fa\u305f\u3089OK.Multistage\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u751f\u6210\u3055\u308c\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304b\u3089\u3082\u5206\u304b\u308a\u307e\u3059\u306d\uff0e<\/p>\n<p>\u751f\u6210\u3055\u308c\u305fconfig\/deploy.rb\u3092\u898b\u308b\u3068\uff0c:deploy\u3068\u3044\u3046namespace\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\uff0eRails\u306e\u305f\u3081\u306eStub?\u304c\u306a\u304f\u306a\u3063\u305f\u305b\u3044\u304b\uff0c\u30e6\u30fc\u30b6\u304c\u81ea\u7531\u306b\u66f8\u304f\u30b9\u30bf\u30a4\u30eb\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\u306d\uff0e<br \/>\n:pty\u3068\u3044\u3046\u5909\u6570\u304c\u5897\u3048\u305f\u308a\uff0cLog\u3092\u7c21\u5358\u306b\u3068\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e<\/p>\n<pre>\r\n# config\/deploy.rb\r\nset :application, 'my app name'\r\nset :repo_url, 'git@example.com:me\/my_repo.git'\r\n\r\n# ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.chomp }\r\n\r\n# set :deploy_to, '\/var\/www\/my_app'\r\n# set :scm, :git\r\n\r\n# set :format, :pretty\r\n# set :log_level, :debug\r\n# set :pty, true\r\n\r\n# set :linked_files, %w{config\/database.yml}\r\n# set :linked_dirs, %w{bin log tmp\/pids tmp\/cache tmp\/sockets vendor\/bundle public\/system}\r\n\r\n# set :default_env, { path: \"\/opt\/ruby\/bin:$PATH\" }\r\n# set :keep_releases, 5\r\n\r\nnamespace :deploy do\r\n\r\n  desc 'Restart application'\r\n  task :restart do\r\n    on roles(:app), in: :sequence, wait: 5 do\r\n      # Your restart mechanism here, for example:\r\n      # execute :touch, release_path.join('tmp\/restart.txt')\r\n    end\r\n  end \r\n\r\n####  \u4e2d\u7565  ####\r\n\r\n  after :finishing, 'deploy:cleanup'\r\nend\r\n<\/pre>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3079\u305f\u3063\u3068\u8cbc\u308b\u3068\u8a18\u4e8b\u304c\u9577\u304f\u306a\u3063\u3066\u3088\u304f\u306a\u3044\u3067\u3059\u306d\uff0e<\/p>\n<p>\u305d\u306e(2)\u306b\u7d9a\u304f\u3053\u3068\u306b\u3057\u307e\u3059\uff0e<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3053\u3093\u306b\u3061\u306f\uff0c\u305f\u306b\u305f\u306b\u3067\u3059\uff0e Deploy\u306e\u305f\u3081\u306e\u30c4\u30fc\u30eb\u3068\u3057\u3066\u6709\u540d\u306aCapistrano\u3067\u3059\u304c\uff0c6\u6708\u306b\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u3057\u3066v3\u306b\u306a\u3063\u3066\u3044\u307e\u3057\u305f\uff0e\uff08\u3044\u3064\u306e\u9593\u306b\u3084\u3089\u30fb\u30fb\u30fb\uff09 v3\u306b\u306a\u3063\u3066\u4eca\u307e\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u5225\u306b\u5165\u308c\u3066\u4f7f\u3046\u306e\u304c\u5f53\u305f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[64],"tags":[74],"class_list":["post-472","post","type-post","status-publish","format-standard","hentry","category-64","tag-capistrano"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5lSjy-7C","jetpack-related-posts":[{"id":479,"url":"https:\/\/blog.tanitanin.net\/?p=479","url_meta":{"origin":472,"position":0},"title":"Capistrano v3\u3092\u8a66\u3057\u3066\u307f\u308b(2)","author":"tanitanin","date":"2013\u5e7410\u67088\u65e5","format":false,"excerpt":"\u3053\u3093\u306b\u3061\u306f\uff0c\u305f\u306b\u305f\u306b\u3067\u3059\uff0e \u524d\u56de\uff0cCapistrano v3\u3092\u5165\u308c\u3066\u307f\u305f\u306e\u3067\uff0c \u4e2d\u8eab\u304c\u3069\u3046\u306a\u3063\u3066\u3044\u308b\u2026","rel":"","context":"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0","block_context":{"text":"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0","link":"https:\/\/blog.tanitanin.net\/?cat=64"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":445,"url":"https:\/\/blog.tanitanin.net\/?p=445","url_meta":{"origin":472,"position":1},"title":"capistrano\u3067rails\u3058\u3083\u306a\u3044\u3082\u306e\u3092deploy\u3059\u308b","author":"tanitanin","date":"2013\u5e745\u670828\u65e5","format":false,"excerpt":"\u3053\u3093\u306b\u3061\u306f\uff0c\u305f\u306b\u305f\u306b\u3067\u3059\uff0e Rails\u306e\u30c7\u30d7\u30ed\u30a4\u30c4\u30fc\u30eb\u3068\u3057\u3066\u6709\u540d\u306a\u306e\u304ccapistrano\u3067\u3059\u304c\uff0c \u2026","rel":"","context":"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0","block_context":{"text":"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0","link":"https:\/\/blog.tanitanin.net\/?cat=64"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":429,"url":"https:\/\/blog.tanitanin.net\/?p=429","url_meta":{"origin":472,"position":2},"title":"RVM\u306bruby1.9.3\u3068mecab-ruby\u3092\u5165\u308c\u305f\u3068\u304d\u306e\u30a8\u30e9\u30fc","author":"tanitanin","date":"2013\u5e743\u670822\u65e5","format":false,"excerpt":"\u3055\u304f\u3089VPS\u3067ruby2.0.0\u3084\u3089\u3092\u5171\u5b58\u3055\u305b\u308b\u305f\u3081\u306bRVM\u3092\u4f7f\u3063\u3066\u3044\u308b\u3051\u3069\uff0c1.9.3-p392\u3092\u2026","rel":"","context":"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0","block_context":{"text":"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0","link":"https:\/\/blog.tanitanin.net\/?cat=64"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":263,"url":"https:\/\/blog.tanitanin.net\/?p=263","url_meta":{"origin":472,"position":3},"title":"Cygwin\u3067Ruby on Rails\u306e\u74b0\u5883\u3065\u304f\u308a","author":"tanitanin","date":"2013\u5e742\u67082\u65e5","format":false,"excerpt":"Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u52c9\u5f37\u306b\u3068Ruby on Rails\u3092\u3044\u3058\u3063\u3066\u307f\u308b\uff0e \u74b0\u5883\u306fCygwin + \u2026","rel":"","context":"Rails","block_context":{"text":"Rails","link":"https:\/\/blog.tanitanin.net\/?cat=73"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":397,"url":"https:\/\/blog.tanitanin.net\/?p=397","url_meta":{"origin":472,"position":4},"title":"Rails3.2\u3067Unicorn\u3092\u52d5\u304b\u305d\u3046\u3068\u3057\u3066\u30a8\u30e9\u30fc\u304c\u51fa\u305f\u3068\u304d\u306e\u5bfe\u51e6\u30e1\u30e2","author":"tanitanin","date":"2013\u5e743\u67088\u65e5","format":false,"excerpt":"Unicorn\u3092development\u30e2\u30fc\u30c9\u3067\u52d5\u304b\u305d\u3046\u3068\u3057\u305f\u3068\u304d\u306b\uff0cCould not find a\u2026","rel":"","context":"Rails","block_context":{"text":"Rails","link":"https:\/\/blog.tanitanin.net\/?cat=73"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":302,"url":"https:\/\/blog.tanitanin.net\/?p=302","url_meta":{"origin":472,"position":5},"title":"Rails3\u3067OmniAuth\u3092\u4f7f\u3063\u3066\u8a8d\u8a3c\u6a5f\u80fd","author":"tanitanin","date":"2013\u5e742\u670824\u65e5","format":false,"excerpt":"Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u3064\u304f\u308b\u3068\u304d\u306b\u4e00\u756a\u5927\u4e8b\u306a\u306e\u304c\u30ed\u30b0\u30a4\u30f3\u6a5f\u80fd\uff0e\u6700\u8fd1\u306fTwitter\u3068\u304bFacebo\u2026","rel":"","context":"Rails","block_context":{"text":"Rails","link":"https:\/\/blog.tanitanin.net\/?cat=73"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.tanitanin.net\/index.php?rest_route=\/wp\/v2\/posts\/472","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.tanitanin.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.tanitanin.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.tanitanin.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.tanitanin.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=472"}],"version-history":[{"count":8,"href":"https:\/\/blog.tanitanin.net\/index.php?rest_route=\/wp\/v2\/posts\/472\/revisions"}],"predecessor-version":[{"id":489,"href":"https:\/\/blog.tanitanin.net\/index.php?rest_route=\/wp\/v2\/posts\/472\/revisions\/489"}],"wp:attachment":[{"href":"https:\/\/blog.tanitanin.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=472"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.tanitanin.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=472"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.tanitanin.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=472"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}