这是我想象中的开发和部署过程:
- 创建项目目录
my_project
。 - 将所需的 Ruby 版本安装到其中。
- 安装所需的 gem。
- 写一些代码。
- 用来
fpm
包装整个东西。 - 将 debian 软件包运送到生产箱并安装。
我使用 RVM 和 Bundler 来解决一些痛点,但 RVM 并不关心创建可重定位的 Ruby 安装,因此您不能~/.rvm/rubies
进入项目目录并期望一切顺利。您必须重写各种硬编码#!
行,并且在某些情况下,您必须将.so
文件移动到lib
目录中。我通过搜索互联网编写了一组脚本,它们一起完成了我想要的,但整个事情感觉就像一个巨大的黑客攻击。
我不小心偶然发现了https://github.com/ot/bpt,它可以用来构建允许完全可重定位的 Ruby 安装的东西,但是该项目已经有两年多没有被触及了,所以我有点犹豫在它之上构建一些东西。
对于我没有看到的这个问题,有没有更优雅的解决方案?人们如何隔离和部署 Ruby 项目?我觉得这应该是一个已解决的问题。