将Rails引擎安装到生产中的多个应用程序的最佳实践

时间:2013-12-21 14:37:06

标签: ruby-on-rails deployment capistrano rails-engines

我对在生产中组织Rails应用程序和可安装引擎感到有些困惑。

我有N个应用程序,它们使用1个可安装的引擎(它为应用程序设置了一些cookie) 在开发中它以这种方式工作 文件夹:

|— app1
|— app2
|— my_engine

在应用Gemfile中:

gem 'my_engine', path: "../my_engine"

所以所有的应用程序都是从1个来源安装它 我想把这个逻辑保留在生产中。

在我的vps应用上以这种方式组织(使用Capistrano进行部署):

|—apps_folder
|— — app1
|— — — current (sym link)
|— — — releases
|— — — shared

|— — app2
|— — — current (sym link)
|— — — releases
|— — — shared

|— git
|— — app1.git
|— — app2.git

您能描述一下工作流程:如何将my_engine部署到我的作品并将其连接到服务器上的所有应用程序。感谢。

1 个答案:

答案 0 :(得分:4)

您的意思是如何部署共享rails引擎?如果共享引擎安装在每个rails应用程序中,则无需单独部署引擎。将rails应用程序部署到生产环境后,运行bundle install将安装所有应用程序依赖项,包括共享引擎。这就是我们在部署中所做的。