【问题标题】:Deploy using Capistrano - is only run for servers matching使用 Capistrano 部署 - 仅针对匹配的服务器运行
【发布时间】:2011-04-05 17:05:04
【问题描述】:

我正在尝试使用 Capistrano 部署我的应用程序,但收到以下错误消息:

`deploy:setup' 仅对匹配 {:except=>{:no_release=>true}} 的服务器运行,但没有匹配的服务器

运行此命令时:

bundle exec cap deploy:setup

这是我的 deploy.rb 文件。

set :application, "example.com"
set :repository, "git@github.com:username/repo.git"
set :use_sudo, false
set :scm, :git
set :web, application
set :app, application
set :db, application
set :branch, "master"
set :user, "webmaster"
set :deploy_to,  "/opt/www/#{application}"
set :deploy_via, :remote_cache
set :domain, application
set :port, 2222

set :bundler_cmd, "bundle install --deployment --without=development,test"
ssh_options[:paranoid] = false

namespace :deploy do
  task :start do ; end
  task :stop do ; end

  task :restart_stalker do
    run "cd #{deploy_to}/current && thor stalker:kill && stalker:init"
  end

  task :restart, :roles => :app, :except => { :no_release => true } do
    run "cd #{deploy_to}/current && touch tmp/restart.txt"
  end

  after "bundler_cmd", "deploy:restart_stalker"
end

我正在使用 Rails 3。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 capistrano


    【解决方案1】:

    您需要定义一些角色。例如:

    role :app, 'myapphostname'
    role :web, 'mywebhostname'
    

    您似乎使用了“set”而不是“role”,但您应该在进行更改之前确认这一点。

    【讨论】:

      【解决方案2】:

      大多数人可能都在使用 capistrano 的多阶段,因此您不会将角色放在 deploy.rb 中,因此如果您在 config/deploy/#env_name.rb 中添加了特定于环境的角色,请确保在您的 config/ 中添加这些角色部署.rb

      set :stages, %w(#env_name1, #env_name2...)
      require 'capistrano/ext/multistage'
      

      并确保已安装 capistrano-ext gem。

      【讨论】:

        【解决方案3】:

        您似乎已经使用bundle exec cap deploy:setup 设置了您的服务器。

        如果是这种情况,您现在应该运行 bundle exec cap deploy

        【讨论】:

          【解决方案4】:

          我将在这里留下一个对我有帮助的答案,当这里或其他地方的建议答案都无法帮助我时 - 我花了几天时间研究这个问题,然后才找到解决办法。

          确保如果使用多阶段,环境特定的配置文件(例如config/deploy/environment.rb)是config/deploy 目录中的only 文件。我有一个环境,dev,我也无法部署,结果不知何故有一个完整的空 config/deploy/dev 文件正在加载,而不是我的 config/deploy/dev.rb 文件,导致对该环境的每次部署都失败并发布错误。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-03-05
            • 2011-01-07
            • 1970-01-01
            • 2013-10-07
            • 2011-08-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多