我尝试使用shared_path设置命令映射:
SSHKit.config.command_map[:composer] = "php #{shared_path.join('composer.phar')}"
但是路径是/ var / www / xxx没有使用我设置的路径:deploy_to deploy / staging.rb。
我想这是因为staging.rb是在。
之后加载的那么正确的方法呢?
答案 0 :(得分:0)
我有同样的问题,虽然我不认为我找到了最好的方法。我找到了办法。
我的默认设置:deploy.rb中的deploy_to指向'/ var / www / my_app'。我有一个开发阶段,服务器使用相同的路径。但我的生产服务器使用'/ home / httpd / something / else'所以我把:deploy_to放在production.rb中,期望它部署到那条路径。除了composer命令之外,一切都有效。 composer.phar文件将下载到正确的共享路径,并正确部署文件。但是当作曲家运行时,它会尝试在'/ var / www / my_app / shared'中找到它。
我所做的不是将自己的SSHKit.config.command_map放在deploy.rb中,而是将其放入任务中。类似的东西:
namespace :deploy do
before :starting, :map_composer_command do
on roles(:app) do |server|
SSHKit.config.command_map[:composer] = "#{shared_path.join("composer.phar")}"
end
end
...
end
感觉就像SSHKit.config.command_map“早到”或其他什么地运行。这似乎有所帮助。它至少对我有用。我有完全相同的问题。
编辑: 我从capistrano/composer上发布的问题得到了一些帮助。