ruby - 简化的 Ruby 代码部署

标签 ruby deployment isolation-frameworks

这是我想象中的开发和部署过程:

  1. 创建项目目录my_project
  2. 在其中安装所需的 Ruby 版本。
  3. 安装所需的 gem。
  4. 写一些代码。
  5. 使用 fpm 打包整个东西。
  6. 将 debian 软件包运送到生产箱并安装。

我使用 RVM 和 Bundler 来解决一些痛点,但 RVM 不关心创建可重定位的 Ruby 安装,所以你不能将 ~/.rvm/rubies 移动到项目目录中,并且期待一切顺利。您必须重写各种硬编码的 #! 行,在某些情况下,您必须将 .so 文件移动到 lib 目录中。我通过搜索互联网拼凑了一组脚本,这些脚本一起完成了我想要的,但整个事情感觉像是一个巨大的黑客攻击。

我不小心发现了 https://github.com/ot/bpt它可以用来构建允许完全可重定位的 Ruby 安装的东西,但该项目已经两年多没有被触及了,所以我有点犹豫要不要在它之上构建一些东西。

对于我没有看到的这个问题,是否有更优雅的解决方案?人们如何隔离和部署 Ruby 项目?我觉得这应该是一个已解决的问题。

最佳答案

与您描述的最接近的是 Tokaido ,据我所知,它仍在进行中。 想到的另一个项目是 Vagrant ,尽管它主要用于开发。

关于ruby - 简化的 Ruby 代码部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14722222/

相关文章:

c++ - MacOSX : How to collect dependencies into a local bundle?

java - 哪个是最好的 Java 隔离框架? JMock、Easymock、Mockito 或其他?

ruby - 库未加载 :/opt/local/lib/libssl. 1.0.0.dylib (LoadError)

ruby - 插入标签时的 Nokogiri 和 XML 格式化

c++ - 如何在 C++ 中嵌入 Ruby?

c# - Moles Isolation 框架是如何实现的?

unit-testing - 我们真的需要隔离框架来创建 stub 吗?

ruby-on-rails - 什么是 Post.all.map(& :id) mean?

ios - livereload 导致应用程序在启动画面上停止(连续加载轮)-Ionic

python - 如何在 linux 中为共享的公司环境部署一个简单的 python 应用程序?