gpt4 book ai didi

ruby - 一些 Capistrano 部署 Hook 不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 06:46:45 27 4
gpt4 key购买 nike

我正在使用 Capistrano v2.14.2 并尝试为 deploy:create_symlink 使用 beforeafter Hook >,但他们似乎都没有开火......

我收到这个警告:

[弃用警告] 此 API 已更改,请 Hook 'deploy:create_symlink' 而不是 'deploy:symlink'。

所以我更新了我的代码以使用 deploy:create_symlink 而不是 deploy:symlink

这是我的 deploy.rb

的一个片段
namespace :foo do
task :start do
puts "starting foo..."
end

task :stop do
puts "stoping foo..."
end
end

before('deploy:create_symlink', "foo:stop")
after('deploy:create_symlink', "foo:start")

这是输出的一个片段:

  * 2013-04-04 13:34:27 executing `deploy:symlink'
* executing "rm -f /web/example.com/current && ln -s /web/example.com/releases/20130404203425 /web/example.com/current"
servers: ["app1"]
[app1] executing command
command finished in 467ms

没有钩子(Hook)被调用...

deploy:finalize_updatedeploy:update_code 的 Hook 似乎都可以正常工作。

能够为 deploy:create_symlink 使用 beforeafter 钩子(Hook)发生了什么?

最佳答案

我遇到了类似的问题,使用的是相同版本的 Capistrano。我也在使用 capistrano-multistage,我很好奇这是否会导致问题(尚未测试普通的 Capistrano 设置)。

基本上,如果您挂接到 deploy:symlink 上的前/后触发器,它会告诉您使用 deploy:create_symlink,但实际运行的是 deploy:symlink。如果我触发其中任何一个,它都不会触发。

我看到了这篇文章,这让我想到我应该改为在“部署后”触发,因为符号链接(symbolic link)对我来说是部署的最后一步:

http://blog.rememberlenny.com/2013/03/04/deploying-wordpress-with-capistrano-symlink-issue-fix/

这是我解决部署的方法:

  • 将我的“部署前:symlink”触发器移动到“部署后:finalize_update”(因为这是之前的任务,它实际上触发了)
  • 将我的“部署后:符号链接(symbolic link)”触发器移至“部署后”

关于ruby - 一些 Capistrano 部署 Hook 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15821321/

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