问题标签 [capistrano]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
11 回答
15096 浏览

ruby-on-rails - 在 Capistrano 中部署 Git 子目录

我的主分支布局是这样的:

/ <-- 顶层

/client <-- 桌面客户端源文件

/server <-- Rails 应用程序

我想做的只是拉下 my 中的 /server 目录deploy.rb,但我似乎找不到任何方法来做到这一点。/client 目录很大,因此设置一个挂钩将 /server 复制到 / 不会很好,它只需要拉下 Rails 应用程序。

0 投票
1 回答
151 浏览

svn - 如何让我的仅 SVN 主机从 git 存储库中提取?

我真的很想让我们的主机从我们的 Git 存储库中提取,而不是手动上传文件,但它没有安装 Git。

那么有没有办法欺骗 Subversion(他们确实有)检查 Git 存储库?

我想我已经知道答案了,即让我的主机添加 Git 并一直使用它,直到他们这样做,但我想我还是会问。

0 投票
4 回答
1172 浏览

ruby-on-rails - 关于颠覆,我应该如何处理供应商目录?

所以我有一个问题。我检查了我的冷冻宝石和铁轨,即使你不应该这样做。我认为这很容易,而且不会有那么大的问题。好吧,后来我更新了 rails 并删除了 vendor/rails 目录中的所有 .svn 文件。我听说我真正应该做的就是对我的供应商目录做一些与 svn:externals 相关的事情。我到底需要做什么,如果我的仓库中没有我的冷冻宝石,capistrano 还会使用它们吗?如果它不使用我冻结的宝石,我怎样才能正确地重新生成那些 .svn 文件,因为这再次发生。

谢谢!

0 投票
2 回答
1354 浏览

ruby-on-rails - Ruby on Rails 中基于环境的配置文件的最佳实践是什么

我有几个属性取决于应用程序运行的环境。例如,有指向正在同时开发的另一个应用程序的链接,这些链接显示在页眉和页脚中。我希望这些链接根据它们所处的环境而有所不同。

这与我们使用开箱即用的环境配置文件的方式略有不同,因为我们的系统管理员甚至在开发服务器上也让 mongrel 在“生产”模式下运行。我只在笔记本电脑上以“开发”模式运行 mongrel。

有处理这种情况的标准方法吗?或者我们应该在开发服务器上以“开发”模式运行 mongrel 等等。在这种情况下,如果在我们的 env 层次结构中有一个额外的级别会发生什么。(开发、测试、UAT、生产)

0 投票
3 回答
1197 浏览

ruby-on-rails - 如何滚动重启杂种集群

任何人都知道一种通过 capistrano 以“滚动”方式重新启动杂种集群的好方法,例如,一次一个杂种。如果每个人都有一点等待时间,让杂种也加载 rails 应用程序,那就太好了。

我已经进行了一些搜索,但没有找到太多,所以在我自己潜入 mongrel_cluster gem 之前寻求帮助。

谢谢!

0 投票
3 回答
3096 浏览

ruby-on-rails - 上限调用和 sudo

我想在我的所有应用程序服务器上安装 gem,但是 gem install 需要 sudo 访问权限 - 我如何才能启用 sudo 仅用于运行此 capistrano 命令?

换句话说,我不希望在我的所有部署方案中都使用 sudo,就在我在命令行上调用此命令时。

0 投票
5 回答
5362 浏览

ruby-on-rails - 将 JRuby on Rails 应用程序部署到 Tomcat 的最佳方式是什么?

我正在寻找将 Ruby on Rails 应用程序(在 JRuby 上运行)部署到 Tomcat 实例以进行测试的方法。

tomcat 实例在我可以通过 SSH 连接到的 Solaris 服务器上运行。我看过使用 Capistrano,但似乎没有很多关于使用它部署到 Tomcat,甚至在 JRuby 下运行它,而且由于 Windows/JRuby 环境,我一直在 Capistrano 中遇到错误我的电脑正在运行(是的,它是公司的——不是我的选择,但我必须忍受它)。

我正在使用 warble 来构建 .war 文件,一旦我手动复制并部署它,应用程序就会部署并运行良好。我想要一些更简单、更自动化的东西来真正实现它。

以前有人做过吗?网络上的文档似乎很薄。

0 投票
5 回答
1897 浏览

ruby-on-rails - Capistrano 没有正确重启 Mongrel 集群

我有一个在 nginx 下运行的由三个杂种组成的集群,我使用 Capistrano 2.4.3 部署应用程序。当我在有一个正在运行的系统时“限制部署”时,行为是:

  1. 应用程序已部署。代码更新成功。
  2. 在 cap deploy 输出中,有这样的:

    • 执行“sudo -p 'sudo 密码:' mongrel_rails cluster::restart -C /var/www/rails/myapp/current/config/mongrel_cluster.yml”
    • 服务器:[“myip”]
    • [myip] 执行命令
    • ** [out :: myip] 停止端口 9096
    • ** [out :: myip] 停止端口 9097
    • ** [out :: myip] 停止端口 9098
    • ** [out :: myip] 已经启动了 9096 端口
    • ** [out :: myip] 已经启动了 9097 端口
    • ** [out :: myip] 已经启动了 9098 端口
  3. 我立即在服务器上检查,发现 Mongrel 仍在运行,并且前三个实例的 PID 文件仍然存在。
  4. 不久之后(不到一分钟),我发现 Mongrel 不再运行,PID 文件不见了,并且无法重新启动。
  5. 如果我手动在服务器上启动 mongrel,应用程序启动得很好。

似乎“mongrel_rails cluster::restart”在尝试重新启动集群之前没有正确等待完全停止。如何诊断和解决此问题?

编辑:这是答案:

mongrel_cluster,在“重启”任务中,简单地这样做:

在调用“开始”之前,它不会进行任何等待或检查以查看进程是否退出。这是一个已知的错误,提交了一个未完成的补丁。我将补丁应用到 Mongrel Cluster,问题就消失了。

0 投票
5 回答
2684 浏览

ruby-on-rails - Capistrano + Thin + nginx,用户不允许 sudo howto?

我有这样一个场景,我想使用 capistrano 来部署我的 ruby​​ on rails 应用程序:

  1. Web 应用程序位于一个瘦集群上,配置文件存储在 /etc/thin 下。在 /etc/init.d/thin 中还有一个 init 脚本,因此只要我的服务器需要重新启动,它就会自动启动
  2. nginx 也以同样的方式执行(作为一个 init 脚本守护进程)
  3. 为了确保万一有人入侵了我的网络服务器,我不希望他们做一些太可怕的事情,所以不允许网络用户使用 sudo。
  4. Thin 和 nginx 都以网络用户身份运行以强制执行此类安全性

现在,当我需要进行部署时,我需要将文件安装在 /home/webuser/railsapps/helloworld 下,然后我需要 cap 脚本重新启动我的瘦身。我想保留网络用户拥有的所有文件,因此 cap 脚本主要用户以网络用户身份运行。现在当我想重新启动瘦守护程序时出现问题,因为 webuser 不能 sudo。

我正在考虑是否可以调用两个单独的会话- webuser 进行文件部署,然后调用一个特殊的 sudoer 来重新启动守护进程。谁能给我一个示例脚本?

0 投票
6 回答
15013 浏览

java - 用于 Java 的 Capistrano?

我是 Capistrano 的忠实粉丝,但我需要为纯 Java 商店开发一个自动部署脚本。我看过 Ant 和 Maven,它们似乎不像 Capistrano 那样适合远程管理——它们似乎更专注于简单地构建和打包应用程序。有没有更好的工具?