【发布时间】:2023-04-04 20:56:01
【问题描述】:
我是 Capistrano (v 3.2.1) 的绝对菜鸟,所以请原谅我的错误,无用。我正在部署一个 PHP 应用程序并希望在 deploy:symlink:release 任务之前运行 composer install (仅在不运行回滚时)
我无法访问新创建的发布目录,因为我需要它能够 cd 进入其中并运行 composer(以及运行其他一些项目)。我目前有;
namespace :deploy do
namespace :symlink do
desc 'Run composer'
task :runcomposer do
on roles :all do
execute "cd '#{current_release}' && composer install"
execute "cd '#{current_release}' && ln -s /sites/shared/index.php index.php"
end
end
before :release, :runcomposer
end
end
此时似乎不存在 {current_release} 变量(这很奇怪,因为运行 git pull 的目录肯定是在 /releases/ 目录中创建的(带有适当的时间戳),但我得到了 '未定义的局部变量或方法“current_release”'
有没有办法在“当前”符号链接指向它之前确定这个新的发布目录?非常感谢您。
【问题讨论】:
标签: ruby deployment capistrano capistrano3