【发布时间】:2013-10-27 11:50:21
【问题描述】:
我正在尝试为 Capistrano 3 编写一个任务,该任务涉及在当前版本的目录中执行“composer install”。它看起来像这样:
namespace :composer do
desc 'Install dependencies with Composer'
task :install do
on roles(:web) do
within release_path do
execute "#{fetch(:composer_command)} install"
end
end
end
end
composer_command 在暂存和生产文件中设置 - 在我的特定情况下为 php /home/user/composer.phar
由于某种原因,此命令实际上并未在当前发布目录中运行,而是在父目录中运行(包含当前、共享、发布等)
我对此进行了深入研究,发现当我运行一个单词命令时,例如:
within release_path do
execute "pwd"
end
它工作得很好,并在当前发布目录中运行命令。 但是...当我运行带有空格的命令时,例如:
within release_path do
execute "pwd && ls"
end
它在父目录中运行,而不是within 块设置的目录。
有人可以解释一下吗?谢谢!
【问题讨论】:
标签: ruby-on-rails ruby capistrano composer-php capistrano3