访问deploy.rb中的shared_pa​​th

时间:2014-07-09 09:47:56

标签: capistrano3

我尝试使用shared_pa​​th设置命令映射:

SSHKit.config.command_map[:composer] = "php #{shared_path.join('composer.phar')}"

但是路径是/ var / www / xxx没有使用我设置的路径:deploy_to deploy / staging.rb。

我想这是因为staging.rb是在。

之后加载的

那么正确的方法呢?

1 个答案:

答案 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上发布的问题得到了一些帮助。