在宝石安装之前防止宝石运行--clear-crontab

时间:2011-12-27 16:12:02

标签: ruby-on-rails capistrano whenever

我正在使用capistrano,并且每当有宝石时,在没有安装任何gem的服务器上进行全新部署时,capistrano会尝试运行

每当--clear-crontab

在rake gems:install命令运行之前,它已清除(来自this)此命令在deploy_code之后运行,但我的命令也安装了gems(如下)..

after "deploy:update_code", "deploy:symlink_config"

deploy.task :symlink_config, :roles => :app do
  # create a symlink to the database.yml file located in the shared_path
  run "ln -nsf #{shared_path}/config/database.yml #{current_release}/config"

  # install any missing gems
  run "cd #{current_release} && sudo rake gems:install --trace RAILS_ENV=#{rails_env}"

  # migrate the database
  run "cd #{current_release} && rake db:migrate --trace RAILS_ENV=#{rails_env}"
end

有没有办法订购这些任务,因为在冷部署时,我总是得到:找不到并且必须手动安装远程服务器上的whatever gem

1 个答案:

答案 0 :(得分:0)

我最终做的是从config \ deploy.rb中删除require "whenever/capistrano"以避免“自动”部署。相反,我添加了一个执行--clear-crontab--update-crontab的任务。这可以按照我设置的顺序执行。

我已将其基于this post,它处理的问题略有不同,但具有相同的解决方案 - 不使用与capistrano的“自动”集成。