6

我有一个像这样的capistrano taks

require "bundler/capistrano"

set :application, "cloudoc"
set :repository,  "git@github.com:luizkowalski/cloudoc.git"

set :scm, :git

role :web, "xx.xx.xx.xxx" 
role :app, "xx.xx.xx.xxx" 
role :db,  "xx.xx.xx.xxx", :primary => true

default_run_options[:pty] = true
ssh_options[:forward_agent] = true

after "deploy:restart", "deploy:cleanup"

set :user, "deploy"
set :use_sudo, true

set :deploy_to, "/home/deploy"
set :deploy_via, :remote_cache

role :web, "xx.xx.xx.xxx"
role :app, "xx.xx.xx.xxx"
role :db, "xx.xx.xx.xxx", :primary => true

之后cap deploy这是输出。
由于某种原因,他失败了,我不知道为什么。我试过使用 use_sudo false 和 root,同样的事情发生了。

    [xx.xx.xx.xxx] executing command
    command finished in 4714ms
    copying the cached version to /home/deploy/releases/20120809223144
  * executing "cp -RPp /home/deploy/shared/cached-copy /home/deploy/releases/20120809223144 && (echo 61eeff328c40e104962f96bf6ffc5150bd1162e4 > /home/deploy/releases/20120809223144/REVISION)"
    servers: ["xx.xx.xx.xxx"]
    [xx.xx.xx.xxx] executing command
    command finished in 604ms
  * executing `deploy:finalize_update'
    triggering before callbacks for `deploy:finalize_update'
  * executing `deploy:assets:symlink'
  * executing "rm -rf /home/deploy/releases/20120809223144/public/assets &&\\\n        mkdir -p /home/deploy/releases/20120809223144/public &&\\\n        mkdir -p /home/deploy/shared/assets &&\\\n        ln -s /home/deploy/shared/assets /home/deploy/releases/20120809223144/public/assets"
    servers: ["xx.xx.xx.xxx"]
    [xx.xx.xx.xxx] executing command
    command finished in 544ms
  * executing `bundle:install'
  * executing "cd /home/deploy/releases/20120809223144 && bundle install --gemfile /home/deploy/releases/20120809223144/Gemfile --path /home/deploy/shared/bundle --deployment --quiet --without development test"
    servers: ["xx.xx.xx.xxx"]
    [xx.xx.xx.xxx] executing command
    command finished in 1990ms
  * executing "chmod -R g+w /home/deploy/releases/20120809223144"
    servers: ["xx.xx.xx.xxx"]
    [xx.xx.xx.xxx] executing command
    command finished in 1042ms
  * executing "rm -rf /home/deploy/releases/20120809223144/log /home/deploy/releases/20120809223144/public/system /home/deploy/releases/20120809223144/tmp/pids &&\\\n      mkdir -p /home/deploy/releases/20120809223144/public &&\\\n      mkdir -p /home/deploy/releases/20120809223144/tmp"
    servers: ["xx.xx.xx.xxx"]
    [xx.xx.xx.xxx] executing command
    command finished in 534ms
  * executing "ln -s /home/deploy/shared/system /home/deploy/releases/20120809223144/public/system"
    servers: ["xx.xx.xx.xxx"]
    [xx.xx.xx.xxx] executing command
    command finished in 517ms
  * executing "ln -s /home/deploy/shared/log /home/deploy/releases/20120809223144/log"
    servers: ["xx.xx.xx.xxx"]
    [xx.xx.xx.xxx] executing command
    command finished in 519ms
  * executing "ln -s /home/deploy/shared/pids /home/deploy/releases/20120809223144/tmp/pids"
    servers: ["xx.xx.xx.xxx"]
    [xx.xx.xx.xxx] executing command
    command finished in 521ms
    triggering after callbacks for `deploy:update_code'
  * executing `deploy:assets:precompile'
  * executing "cd /home/deploy/releases/20120809223144 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
    servers: ["xx.xx.xx.xxx"]
    [xx.xx.xx.xxx] executing command
 ** [out :: xx.xx.xx.xxx] Compiled jquery.js  (2ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled jquery_ujs.js  (0ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled twitter/bootstrap/bootstrap-transition.js  (0ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled twitter/bootstrap/bootstrap-alert.js  (0ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled twitter/bootstrap/bootstrap-modal.js  (0ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled twitter/bootstrap/bootstrap-dropdown.js  (0ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled twitter/bootstrap/bootstrap-scrollspy.js  (0ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled twitter/bootstrap/bootstrap-tab.js  (0ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled twitter/bootstrap/bootstrap-tooltip.js  (0ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled twitter/bootstrap/bootstrap-popover.js  (0ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled twitter/bootstrap/bootstrap-button.js  (0ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled twitter/bootstrap/bootstrap-collapse.js  (0ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled twitter/bootstrap/bootstrap-carousel.js  (0ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled twitter/bootstrap/bootstrap-typeahead.js  (0ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled twitter/bootstrap.js  (247ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled ios-checkboxes/ios-checkboxes.js  (20642ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled ios-checkboxes.js  (22403ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled rails.validations.js  (418ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled best_in_place.js  (327ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled autosize.js  (76ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled bootstrap.js  (5870ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled dashboard.js  (1388ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled documents.js  (896ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled home.js  (377ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled sessions.js  (563ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Compiled application.js  (51370ms)  (pid 1075)
 ** [out :: xx.xx.xx.xxx] Killed
    command finished in 68972ms
*** [deploy:update_code] rolling back
  * executing "rm -rf /home/deploy/releases/20120809223144; true"
    servers: ["xx.xx.xx.xxx"]
    [xx.xx.xx.xxx] executing command
    command finished in 612ms
failed: "sh -c 'cd /home/deploy/releases/20120809223144 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile'" on xx.xx.xx.xxx

有任何想法吗? 如果有人需要更多信息,请提前
告诉我谢谢

4

4 回答 4

19

当 RAM 不足并且进程使用大量 RAM 时,内核会主动终止进程。您可以使用dmesg来查看进程是否被内核杀死。会出现这样的消息:

[ 3380.091822] Out of memory: Kill process 1075 (ruby1.9.1) score 382 or sacrifice child

您可以激活交换空间或关闭其他进程。如果您在 VPS 上运行,请确保您有足够的可用 RAM。最简单的解决方案 - 如果问题真的是可用 RAM 短缺 - 就是购买更多 RAM。

于 2012-08-09T22:51:54.090 回答
9

我在 Digital Ocean 上运行我的 rails 应用程序。创建 2gb 交换似乎可以解决问题。

于 2014-01-08T13:02:15.060 回答
1

如果您使用的是亚马逊 EC2 微型实例,请尝试删除应用程序的旧版本,然后重新启动服务器实例。这对我有用。帽部署:清理帽橡胶:重新启动

于 2013-06-09T10:42:13.610 回答
0

我遇到了这个错误,并意识到我正在存储我以前发布的所有版本。我只是用过cap deploy:cleanup,效果很好。

于 2015-06-09T05:19:11.963 回答