Capistrano Multistage deploying to wrong directory

前端 未结 4 803
旧时难觅i
旧时难觅i 2020-12-29 08:47

Im having some problems with my capistrano setup after updating my gems lately. I have a multistage setup with a production and staging setup.

/config/deploy.rb

4条回答
  •  甜味超标
    2020-12-29 09:10

    I stumbled across this while on Stack Overflow. Its an old question but since its flagged as open I'm going to give it a shot.

    I think this might be a scope issue with how the Capistrano Instances get loaded.

    I notice this syntax doesn't work in the production.rb and test.rb files

     set :deploy_to, "/var/www/mysite/live"
    

    But this one does:

    set(:deploy_to)  { "/var/www/#{application}/live" }
    

    Its a subtle difference but I think the one that works is actually passing the information as a Proc block, whereas the first one is passing it as a string. I have a sneaky suspicion that by the time the Capistrano Instance comes into being that string is no longer present.

    This would indicate to me that something is off in your load or require order as you should be able to set the deploy variables in these files. If you can't figure it out you may be able to cheat and surround the deploy/production.rb or deploy/test.rb code with

    Capistrano::Configuration.instance.load do
      # variables, etc here
    end
    

    That would definitely tell you that this file isn't being loaded within the scope of the Capistrano instance.

    Also minor point but the files should be in

    config/deploy # relative to your Rails app
    

    Not

    /config/deploy/ # this is an absolute path off of your root folder
    

    Good Luck. Hopefully you've already solved this issue!

提交回复
热议问题