rails + unicorn + nginx + capistranoでデプロイを試みておりますが、途中でパス関係のエラーが出ています。
ローカルから
$ bundle exec cap production deploy
した時のエラーログです
bundler:install 01 /home/user/.rbenv/bin/rbenv exec bundle install --path /var/www/app/fender/sha… 01 /usr/bin/env: ruby: そのようなファイルやディレクトリはあり... #<Thread:0x00007fe5b520c658@/Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true): Traceback (most recent call last): 1: from /Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute' /Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as user@***.2*.9.***: bundle exit status: 127 (SSHKit::Runner::ExecuteError) ↓log/capistrano.log DEBUG [f1f84855] Running /home/user/.rbenv/bin/rbenv exec bundle check --path /var/www/app/fender/shared/bundle as user@***.2*.*.*** DEBUG [f1f84855] Command: cd /var/www/app/fender/releases/20180914103209 && ( export RBENV_ROOT="/home/user/.rbenv" RBENV_VERSION="2.5.1" ; /home/user/.rbenv/bin/rbenv exec bundle check --path /var/www/app/fender/shared/bundle ) DEBUG [a10b3279] /usr/bin/env: ruby: そのようなファイルやディレクトリはありません
/usr/bin/env: ruby: そのようなファイルがありませんとあり、リモートのパス関連で起こっているエラーだと思われますが、なにをしたら解決できるのかわかりません。
エラー内容をもとに、リモートで
$ /usr/bin/env ruby -v ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
をしてみましたが、rubyはあります。。
リモートの環境
$ gem env RubyGems Environment: - RUBYGEMS VERSION: 2.7.6 - RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux] - INSTALLATION DIRECTORY: /home/user/.rbenv/gems/2.5.0 - USER INSTALLATION DIRECTORY: /home/user/.gem/ruby/2.5.0 - RUBY EXECUTABLE: /home/user/.rbenv/versions/2.5.1/bin/ruby - EXECUTABLE DIRECTORY: /home/user/.rbenv/gems/2.5.0/bin - SPEC CACHE DIRECTORY: /home/user/.gem/specs - SYSTEM CONFIGURATION DIRECTORY: /home/user/.rbenv/versions/2.5.1/etc - RUBYGEMS PLATFORMS: - ruby - x86_64-linux - GEM PATHS: - /home/user/.rbenv/gems/2.5.0 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :backtrace => false - :bulk_threshold => 1000 - "install" => "--env-shebang" - "gemhome" => "/home/user/.rbenv/gems/2.5.0" - REMOTE SOURCES: - https://rubygems.org/ - SHELL PATH: - /home/user/.rbenv/versions/2.5.1/bin - /home/user/.rbenv/libexec - /home/user/.rbenv/plugins/ruby-build/bin - /home/user/.rbenv/plugins/rbenv-communal-gems/bin - /home/user/.rbenv/shims - /home/user/.rbenv/bin - /usr/local/bin - /usr/bin - /usr/local/sbin - /usr/sbin - /home/user/.local/bin - /home/user/bin
$ gem list *** LOCAL GEMS *** bundler (1.16.4)
$ rbenv version 2.5.1 (set by /home/user/.rbenv/version)
$ ruby -v ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
lang
1Capfile 2 3# capistranoの基本動作を設定 4require "capistrano/setup" 5require "capistrano/deploy" 6 7require "capistrano/scm/git" 8install_plugin Capistrano::SCM::Git 9 10require "capistrano/rbenv" 11set :rbenv_type, :user #rbenvをシステムにインストールした or ユーザーローカルにインストールした 12set :rbenv_ruby, '2.5.1' 13 14set :rbenv_custom_path, '/home/user/.rbenv' 15# リモートサーバーで$ rbenv version 16# 2.5.1 (set by /home/user/.rbenv/version)に基づく 17 18require "capistrano/bundler" 19require "capistrano/rails/assets" 20require "capistrano/rails/migrations" 21 22Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r } 23
検索して、パス関連のエラー解決記事を読みましたが、gem listやgem envを確認してから、なにをいじったら良いのかわかりませんでした。
Capfileに以下を記述することは方向性としては正しいでしょうか?(これから試してみようと思います)
set :rbenv_ruby, File.read('.ruby-version').strip set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec" set :rbenv_map_bins, %w[rake gem bundle ruby rails]
お手数おかけしますが、教えていただけますと幸いです。
参照した記事
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/07 08:05