ruby-on-rails - Rails 6 部署作为开发影响生产
问题描述
在将应用程序部署到新的 VPS 之后,我逐渐发现了一些奇怪的东西。
- 日志结构绝对不是开发模式类型。
- 日志同时写入
development.log
和production.log
。 - 传达给浏览器的错误也证实了应用程序正在生产模式下运行。
调用后这是意料之外的
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) 如何使部署适合开发模式?
解决方案
推荐阅读
- angular - 离子角度,子组件不会显示
- reactjs - 在反应惰性/悬念中的每个导航动作之间“加载...”
- php - 如何根据 PHP 数组的表单输入选择和显示匹配的特定行?
- javascript - React/Socket.IO - 每次 React 组件更改时,Socket 都会断开连接
- javascript - 如何使用 React Native 基本钩子示例?
- python - Django:处理模板中的外键值
- ios - SceneKit SCNBox 不显示
- angular - 带有复选框的 mat-tree - 获取所有复选框,即使是不可见的复选框
- php - WebP 文件格式的 Imagick setProfile ( XMP )
- c# - 映射一个对象包含列表以列出 myDto 对象