Tag: capistrano

如何使用capistrano 3部署特定修订版

如何使用Capistrano 3部署特定的git版本? Capistrano 2.9方法不再适用 $cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy invalid option: -S

如何通过capistrano进入生产轨道控制台?

我想通过capistrano从我的本地机器进入生产服务器上的rails控制台。 我找到了一些要点,例如https://gist.github.com/813291 ,当我进入控制台时 cap production console 我得到以下结果 192-168-0-100:foldername username $ cap console RAILS_ENV=production * executing `console’ * executing “cd /var/www/myapp/current && rails console production” servers: [“www.example.de”] [www.example.de] executing command [www.example.de] rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell ‘1.9.3’ -c ‘cd /var/www/myapp/current && rails console production’ /var/www/myapp/releases/20120305102218/app/controllers/users_controller.rb:3: warning: already initialized constant VERIFY_PEER Loading production environment (Rails 3.2.1) Switch to inspect mode. […]

是否有可能让Capistrano通过反向SSH隧道进行结账?

我正在开发一个驻留在公共主机上的应用程序,但其源代码必须保存在公司防火墙后面的Git存储库中。 我已经厌倦了通过scp部署的缓慢(复制整个存储库并在每次部署时通过SSH发送它),并且希望让远程主机简单地执行git pull更新。 问题是防火墙禁止传入SSH连接。 我可以设置从我的计算机到部署计算机的SSH隧道,并使用我的存储库作为git pull的来源吗? 毕竟, git是分布式的,因此我的副本与中央副本一样有效。 如果可以,那么tunnel命令和Capistrano配置是什么? 我认为隧道看起来像 ssh -R something:deployserver.com:something deploybot@deployserver.com

Rails 3 app,如何获得GIT版本和更新网站?

我正在使用capistrano部署我的rails 3应用程序,我想获取git版本(和日期信息)并用此更新我的网站页脚。 我怎样才能做到这一点?

Rails App维护而不妨碍访客

Phusion Passenger错误消息不是我希望访问者在我更新后端时登陆我的网站时看到的内容。 那么我该如何解决这个问题呢? 我的部署过程从一开始就存在缺陷吗? 还是有什么我错过了? 这是我的部署过程,所以你得到了图片: 提交对git仓库的新更新并推送到远程 上限部署 ssh [ip] 耙gem:安装 rake db:migrate 黄瓜 cap部署和db:migrate或gems:install之间的时间是出现错误消息或更长时间的维护期间。 在我写这篇文章时,一个想法让我感到震惊:我可以将这些命令放入我的部署配方中吗? 但是,如果维护需要30分钟或一小时,这些命令将无法解决问题。 如何在这段时间内向访问者提供维护启动页面? 提前致谢。

Capistrano 3 sudo任务

我想用Capistrano 3编写一个配方,用sudo在远程服务器上执行任务。 有了Capistrano 2,这可以做到例如: default_run_options[:pty] = true task :hello do run “#{sudo} cp ~/something /something” end 随着Capistrano 3,我发现: set :pty, true 但我无法执行使用sudo运行的任务。 如何使用sudo运行任务?

Capistrano杀死资产:预编译

我正在尝试部署我的应用程序而且我一直在努力 *** [err :: xxx.xxx.xx.xxx] bash: line 1: 9953 Killed bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile 我认为问题是这个过程花了太长时间。 日志中没有错误, top没有显示任何exception。 我设法摆脱日志的是它正在杀死的进程似乎是application.js编译。 当我运行rake assets:precompile在本地rake assets:precompile ,没有错误/警告。 我可以延长capistrano在杀死进程之前等待的长度吗? 那真的是问题吗? 我还能在哪儿看? 更新 跑步的时候 bundle exec rake assets:precompile RAILS_ENV=production RAILS_GROUPS=assets –trace 我得到以下输出 ** Invoke assets:precompile (first_time) ** Execute assets:precompile ** Invoke assets:precompile:all (first_time) ** Execute assets:precompile:all ** Invoke assets:precompile:primary (first_time) […]

Capistrano 3拉命令行参数

我正在从Capistrano 2升级到Capistrano 3.在Cap 2中我使用以下命令行参数作为分支名称(否则默认为master ) set :branch, fetch(:branch, “master”) 如果我调用cap deploy ,它将部署master分支。 但它也让我做这样的事情: cap deploy -S branch=foo 哪个会部署foo分支。 现在,在Capistrano 3中,如果我尝试运行以上操作,我会收到一个错误: invalid option: -S 。 现在通过命令行传递参数的正确方法是什么?

db:schema:load vs db:使用capistrano迁移

我有一个rails应用程序,我正在移动到另一台服务器,我想我应该使用db:schema:load来创建mysql数据库,因为它是推荐的。 我的问题是我正在使用capistrano进行部署,而似乎默认为rake db:migrate。 有没有办法改变这个或使用db:migrate的capistrano有充分理由?

使用capistrano部署远程git repo但没有在生产服务器上运行git

我有一个远程git存储库设置,用于在我的团队中进行集中开发。 但是,我们部署应用程序的生产服务器当前没有运行git。 我们想使用capistrano来部署我们的应用程序如何在部署时如何设置部署配方以从远程git存储库中“拉出”? 换句话说,我可以这样做吗? set :repository, “myserver.com/git/#{application}.git” set :scm, “git” set :deploy_via, :copy