首页 > 解决方案 > Rails 6 部署作为开发影响生产

问题描述

在将应用程序部署到新的 VPS 之后,我逐渐发现了一些奇怪的东西。

调用后这是意料之外的

cap development deploy

deploy.rb特意设置如下:

set :deploy_to, '/home/deploy/mark'
# target: production

并且deploy/development.rb如果必须在其他地方指定 environmente,为什么还要 deploy/development.rb?un-DRY)具有它有效部署到的 VPS 的 IP 地址(生产没有),没有别的:

 server 'XXX.YYY.ZZZ.28', user: 'deploy', roles: %w{db web app} 

乘客,通过/etc/nginx/conf.d/mod-http-passenger.conf

passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /home/deploy/.rbenv/shims/ruby;

所以乘客路线似乎没有问题。

因此 capistrano 以开发为幌子进行部署,但实质上是生产一种生产模式......到数据库mark_development

Capfile 有

require "capistrano/setup"
require "capistrano/deploy"
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git
require 'capistrano/rails'
require 'capistrano/passenger'
require 'capistrano/rbenv'
set :rbenv_type, :user
set :rbenv_ruby, '2.6.1'
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }

a) 发生了什么?b) 如何使部署适合开发模式?

标签: ruby-on-railscapistrano

解决方案


推荐阅读