【问题标题】:What is the best way to package a Ruby on Rails Application?打包 Ruby on Rails 应用程序的最佳方式是什么?
【发布时间】:2016-06-29 01:23:05
【问题描述】:

所以我创建了一个用作基本计算器的 ruby​​ on rails 应用程序。现在我想打包这个应用程序,上传到 github,下载到 Jenkins,然后创建一个运行这个 ruby​​ 应用程序的 Jenkins 作业。

通常,如果这是一个 Java 应用程序,您会将其打包为 jar 文件,然后运行该 jar 文件。我会将这个 Ruby 应用程序打包成什么?

我曾考虑将这个应用程序打包为一个 Ruby Gem,但 Ruby Gems 不是主要用于当您想在另一个 ruby​​ 应用程序中使用您的 ruby​​ 应用程序时使用的吗?我想将此应用程序作为独立应用程序运行。

即使我将 Ruby on Rails 应用程序打包为 Ruby Gem,我如何将 gem 作为独立 gem 运行?从命令行运行它的命令是什么?

【问题讨论】:

  • 您可能应该查看可以在 JVM 上运行的 jRuby 实现。否则,rails 应用程序不会打包为 java 应用程序,而是由 Unicorn 或 Passenger 等 Web 服务器运行
  • 我想你可能误解了我的意思。我不想将我的 ruby​​ 应用程序打包为 Java 应用程序。我只是对 Java 应用程序和 Jar 文件进行了比较,以便人们了解我试图将 ruby​​ 应用程序打包成的文件类型,并询问是否存在与 Jar 文件等效的 ruby​​ 文件。

标签: ruby-on-rails ruby jenkins rubygems


【解决方案1】:

与将包装作为一等公民(无论是罐子还是战争)的 Java 应用程序不同,这个概念在大多数开发环境中都没有得到体现。

这就是为什么大力推动 docker,它允许您隔离您的应用程序(和 gem 依赖项)并将其插入生产环境,就像将战争放入容器中一样。

这是一篇关于 Docker 化 Rails 应用程序的文章: https://semaphoreci.com/community/tutorials/dockerizing-a-ruby-on-rails-application

【讨论】:

  • 感谢您的文章!不过我确实有一些问题。我正在浏览这篇文章,它向他们展示了使用 Ruby on Rails 应用程序的情况。他们是将 Rails 应用程序打包为 gem,还是在不打包文件的情况下立即开始使用它。另外,我将如何将这个 dockerized 应用程序与 Jenkins 结合使用?如果您还记得最终目标是从 Jenkins 作业中运行这个 ruby​​ 应用程序。如何在 Jenkins 中运行 dockerized 应用程序?
  • 在开发环境中,您可以通过 rails server 使用 rails gem 中的嵌入服务器,但在生产环境中,您应该构建一个将由 docker 容器执行的 docker 映像。 docker 容器是虚拟化进程的管理器。 Jenkins 有一个提供 docker 支持的插件。 wiki.jenkins-ci.org/display/JENKINS/Docker+build+step+plugin
猜你喜欢
  • 1970-01-01
  • 2021-05-19
  • 1970-01-01
  • 2010-09-13
  • 2010-09-08
  • 2012-05-07
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
相关资源
最近更新 更多