我对在生产中组织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部署到我的作品并将其连接到服务器上的所有应用程序。感谢。
答案 0 :(得分:4)
您的意思是如何部署共享rails引擎?如果共享引擎安装在每个rails应用程序中,则无需单独部署引擎。将rails应用程序部署到生产环境后,运行bundle install
将安装所有应用程序依赖项,包括共享引擎。这就是我们在部署中所做的。