Tag: 部署

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

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

Rails App维护而不妨碍访客

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

在部署rails应用程序之前,我需要做些什么

编辑 在部署rails应用程序之前,我需要做哪些小事情太容易被忽视? 我为任何需要一两分钟以上的任务设置了另一个问题 ,因此应该安排到部署过程中。 在这个问题中,我主要关注的是在线配置选项和类似的,可以这样做,但在开发周期中经常被忽略,因为它们在部署之前没有任何区别

部署rails应用程序时要做的大事

在问题在部署rails应用程序之前我需要做些什么我得到的答案比“小事情”要大得多。 所以这个问题略有不同。 在部署rails应用程序之前,我需要采取哪些合理的主要步骤。 在这种情况下,我的意思是需要超过5分钟,所以需要安排。 对于小的oneline配置更改,请使用小问题。

蓝图css中的资产预编译错误 – ActionView :: Template :: Error(blueprint / screen.css未预编译) – 内部服务器错误500

我正在尝试部署rails应用程序,但我遇到了资产预编译错误。 根据生产日志,错误是由名为screen.css的“Blueprint”css脚本引起的(如下面的错误输出中所示)。 但是根据生产日志,这个资产实际上确实得到了预编译。 我试过在application.rb和config / environments / production.rb文件中明确地将screen.css和print.css添加到预编译数组中,如下所示 config.assets.precompile = %w(screen.css print.css) 但无济于事。 我也试过在本地预编译我的资产并将整个事情推送到服务器。 我已经尝试了这里概述的所有建议: blueprint / screen.css没有预编译 ,这里: blueprint css rails 3.1 help和同样的问题在这里仍未解决: Ruby on Rails 3.2编译资产不能正常工作 我不知道接下来要尝试什么来解决这个错误。 任何帮助将非常感谢! 下面的日志输出以及我的部署文件,cap文件和application.rb文件。 提前感谢您提出的任何建议! 以下是部署后日志文件的一些输出,您可以看到screen.css已预编译。 错误输出如下: Compiled application.js (5ms) (pid 16431) Compiled jquery.js (2ms) (pid 16431) Compiled jquery_ujs.js (0ms) (pid 16431) Compiled microposts.js (94ms) (pid 16431) Compiled […]

使用Heroku的分支策略进行良好的Git部署?

与Git + Heroku(Ruby on Rails)一起使用的优秀部署策略是什么? 目前我使用我的原始Git存储库的方式:所有function(或“故事”)首先作为分支检出,然后与master合并并推送到原点。 推送到origin / master的任何东西都会触发一个脚本,将新的rails代码拉到暂存区域(简单的rails webserver)。 当我需要将新的生产版本推送到Heroku时,我是否应该创建一个新的分支(称为类似于production_version_121),并以某种方式将其推送到Heroku? 理想情况下,我想选择我应该包含在生产分支中的先前开发版本中的哪些function…测试它,然后推送到Heroku。 例如,我可能不希望将所有最新代码推送到生产环境。 我可能想要我曾经使用的function“a”和function“c”都以某种方式合并到制作中,而不包括需要更多调试的实验性function“b”。 NB我首先要尝试避免使用capistrano并立即手动工作。 思考? 最佳实践?

在heroku生产站点上清除rails app数据库

所以我是ROR和Heroku的新手,需要一些帮助。 我已经创建了一个应用程序并已部署它; 但是,我想清除与之相关的数据库。 意思是我想清除到目前为止已创建的任何用户(及其附加数据)。 我基本上创建了几个虚假帐户来测试生产网站上的数据库是否有效,但现在我想清除它,并从一个新的数据库开始。 这可能不完全删除数据库吗? 任何帮助都将得到真诚的感谢。 非常感谢您的宝贵时间!

在dreamhost上的Rails 3?

我想在dreamhost上部署一个小的Rails 3应用程序(仅用于测试目的,没有什么严重的),我想知道是否有人已经完成它…请选择以下之一: 我做到了,它非常简单,这里是如何:…… 虽然我没试过,但它应该很容易,这是如何:…… 这很复杂,但这应该让你开始:…. NO WAI !!! 1!one!1将它设置在slicehost或另一个非共享主机上,否则你将死于试图强迫DH上的痛苦死亡 思考?

在Rails生产中删除缓存Busting

当我在生产模式下部署rails应用程序时,它会将日期时间字符串作为查询参数附加到所有静态资产URL的末尾。 这是为了防止浏览器在重新部署应用程序后使用资产的旧日期转换副本。 有没有办法让rails使用旧的时间戳来保存自上次部署以来未更改的资产(以及只有未更改的资产)。 我想这样做是为了防止用户重新下载那些没有改变的资产。

在亚马逊EC2上使用capistrano进行生产时,资产不会预编译

我致力于使用capistrano部署到生产。 我面临几个问题,在修复大部分问题的同时,我们还有最后一个问题。 我们的预编译资产选项没有在生产中正确编译它们,因此,我们无法使用最后开发的function,因为它们严重依赖JS。 不试图影响任何人如何分析这个问题,这是我尝试使其工作的一些方法: 本地预编译资产,推送到github仓库,从本地机器部署到ec2。 cap deploy是本地的,被推送到ec2的代码是github上的代码。 尝试使用capistrano任务建议。 在Capfile中使用load’debloy’assets’并让cap deploy:setup任务完成它。 使用选项cap deploy:assets:clean然后cap deploy:assets:precompile 尝试从公共中删除资产,然后在deploy.rb中使用pipeline_precompile任务 过期资产,强制rails预编译application.rb中更改assets.versions的所有内容 尝试在environment / production.rb中的config.assets上尝试不同的组合 最后,尝试使用RAILS_ENV =生产包exec rake资产删除生产中的公共/资产并在那里进行预编译:预编译 该应用程序只是没有使用新的JS文件。 如果你在repo或服务器本身检查代码,我在name.js.coffee中引入了一个简单的注释(“显示和隐藏菜单,具体取决于数据库中的数据”,这是在xxx行),这不是生产中编译的assets.js。 这是一个快速测试,以确保最近的资产被使用。 这里的问题是js和css文件,而不是rails。 这就是为什么它如此难以测试或找到..因此最近js框架普及的原因之一。 如果出现问题,你不必自杀,寻找问题所在。如果问题是ruby或铁轨,通常不需要那么长时间才能找到问题。 一旦你获得js,css和跨浏览器兼容性,那么这就是手头的问题。 这是我的deploy.rb文件。 运行轨道3.2.12 ruby​​-1.9.3-p327: # $:.unshift(File.expand_path(‘./lib’, ENV[‘rvm_path’])) # Load rvm’s capistrono plugins require ‘rvm/capistrano’ require ‘bundler/capistrano’ set :rvm_type, :user set :user, ‘username’ set :domain, ‘ip_address’ set :application, “app_pro” […]