Capistrano v3 - Hook运行命令后部署

 蔡伟钊cc 发布于 2022-12-04 16:38

我正在使用Capistrano部署到运行Nginx的服务器.我遇到了APC的一些问题,我需要在Capistrano完成部署后重新加载PHP-FPM.这个问题本身在这里概述, 但是就像那个作者我不想在命令行中远程登录和重新加载PHP-FPM一样,我希望Capistrano能够将其作为一个部署后的钩子.

下面使用deploy.rb的本质;

    set :application, "deploytest"

    set :repository,  "git@bitbucket.org:gitaccount/git-repo.git"
    set :scm,         :git
    set :deploy_via,  :remote_cache
    set :app_webroot, "/public"

    default_run_options[:pty] = true

    desc "Execute Capistrano tasks against Production server."
    task :prod do
        role :web, "123.45.67.89"
        role :app, "123.45.67.89"
        set :env,         "prod"
        set :domain,      "deploy-domain.com"
        set :deploy_to,   "/var/www/vhosts/#{domain}/site"
        set :branch,      "master"
    end

我可以推动使用命令;

    bundle exec cap prod deploy        

效果很好.男孩,我一直在努力让命令在部署完成后自动触发另一个命令.

我尝试过的;

以下是主要方法的摘要;

    为我的任务创建新的命名空间

    namespace :mcnab do
      desc "Running hook post deploy"
      task :fpmreload do
        execute "service php-fpm reload"
      end
    end
    
    after "deploy:create_symlink", "mcnab:fpmreload"
    

    将这两个任务包装在"deploy"命名空间中,并使用以下命令触发挂钩

    after "deploy:create_symlink", "deploy:fpmreload"
    

    在新任务中再次明确设置角色

    task :fpmreload do
        role :web, "178.62.13.10"
        role :app, "178.62.13.10"
        on roles(:all) do 
            execute "service php-fpm reload"
        end  
    end
    

    明确设置用户

    task :fpmreload do
      on "user@123.45.67.89" do
        execute "service php-fpm reload"
      end
    end
    

    使用'run'而不是execute

    task :fpmreload do
      on "user@123.45.67.89" do
        run "service php-fpm reload"
      end
    end
    

Hrrmph,其上有大约一百万个变种.我现在真的只是猜测,即使有详细的错误报告,错误消息也没有多大帮助.只有一个工作示例的deploy.rb文件与一个运行命令的简单post deploy钩子将是伟大的,但我找不到一个.

1 个回答
  • 这适合我

    before :published, :fpm_reload
    desc 'Fpm reload'
    task :fpm_reload do
      on release_roles :all do |host|
        execute :service, 'php5-fpm', :reload
      end
    end
    

    文档:http: //capistranorb.com/documentation/getting-started/flow/

    2022-12-11 02:14 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有