gpt4 book ai didi

deployment - Capistrano v3 - 运行命令后部署的 Hook

转载 作者:行者123 更新时间:2023-12-05 01:01:48 24 4
gpt4 key购买 nike

我正在使用 Capistrano 部署到运行 Nginx 的服务器。我在使用 APC 时遇到了一些问题,我需要在 Capistrano 完成部署后重新加载 PHP-FPM。问题itself is outlined here但就像那个作者一样,我不想通过 SSH 远程从命令行重新加载 PHP-FPM,我希望 Capistrano 将其作为部署后 Hook 。

正在使用的 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"
  • 将两个任务包装在“部署”命名空间中并使用以下命令触发 Hook
    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
  • 使用“运行”而不是执行
    task :fpmreload do
    on "user@123.45.67.89" do
    run "service php-fpm reload"
    end
    end

  • Hrrmph,以及大约一百万种变化。我现在真的只是在猜测,即使有详细的错误报告,错误消息也无济于事。只有一个 deploy.rb 文件的工作示例和一个运行命令的简单部署后 Hook 会很棒,但我找不到。

    最佳答案

    这对我有用

    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/

    关于deployment - Capistrano v3 - 运行命令后部署的 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27546782/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com