我正在使用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
答案 0 :(得分:0)
我最终做的是从config \ deploy.rb中删除require "whenever/capistrano"
以避免“自动”部署。相反,我添加了一个执行--clear-crontab
和--update-crontab
的任务。这可以按照我设置的顺序执行。
我已将其基于this post,它处理的问题略有不同,但具有相同的解决方案 - 不使用与capistrano的“自动”集成。