我一直在尝试在 EC2 实例上部署我的 rails 应用程序。我已经采取的步骤是
本地:
我通过写入
Gemfile
和安装了所有的宝石bundle install
:group :development do gem 'capistrano' gem 'capistrano3-puma' gem 'capistrano-rails', require: false gem 'capistrano-bundler', require: false gem 'capistrano-chruby' end
我编辑了我
Capfile
的需要模块require "capistrano/setup" require "capistrano/deploy" require "capistrano/scm/git" install_plugin Capistrano::SCM::Git require "capistrano/chruby" require "capistrano/bundler" require "capistrano/rails/assets" require "capistrano/rails/migrations" require "capistrano/puma" Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
我也做了必要的改变
config/deploy.rb
,特别是set :chruby_ruby, 'ruby-2.3.0'
在服务器/实例上:
- 安装红宝石
安装 Chruby 并包含在
/etc/profile.d/chruby.sh
这些中:source xx/xx/xx/chruby.sh source xx/xx/xx/auto.sh
为 app 创建了一个文件夹,还创建
database.yml
了application.yml
.
完成所有这些后,当我运行时cap production deploy
,它开始检查和 git 克隆以及链接文件和目录但失败bundler:install
,给出一个错误,如
01 /usr/local/bin/chruby-exec ruby-2.3.0 -- bundle install --path /home/deploy…
01 /bin/sh: 2: /etc/profile.d/chruby.sh:
01 source: not found
01
01 /bin/sh: 3: /etc/profile.d/chruby.sh:
01 source: not found
01
01 /bin/sh: 1:
01 chruby: not found
01
由于只有使用 RVM 或 JRuby 将 Rails 部署到 AWS 的示例,因此我无法弄清楚我哪里出错了。