Capistrano、Passenger、RVMを使用してWindows開発マシンからDebian 9 VPSにRailsアプリケーションをデプロイしようとしています。 RPSとPassengerをVPS上のApacheと設定し、CapistranoをWindowsマシンにセットアップしました。しかし、私はcap production deploy
を実行しようとすると、私は次のエラーを取得する:Windows上での開発のCapistrano:bundler:コマンドの読み込みに失敗しました。
bundler: failed to load command: rake (/var/www/APPNAME/shared/bundle/ruby/2.4.0/bin/rake)
一つの癖はGemfile.lock
は宝石のWindows固有のバージョンを削除する展開で編集しなければならないということです。私は期待どおりに動作するように見えるこのアクションを実行するカスタムタスクを書いています。
- log/capistrano.log, starting with the custom task
- Gemfile
- Gemfile.lock
- Capfile
- config/deploy.rb
- config/deploy/production.rb :ここ
- lib/capistrano/tasks/dewindowsify.rake (the custom task)
は役に立つかもしれないいくつかのファイルです
VPSに '/ var/www/APPNAME/shared/bundle/ruby/2.4.0/bin/rake'が存在するかどうかチェックしましたか?あなたのcapistrano sshユーザーはrvmグループにいますか?あなたのcapistrano setupはrubyスクリプトを呼び出す前にrvm環境のソースを設定していますか? –
チェックしてファイルが存在します。 VPSには "rvm"というグループはありません。 rvmはsshユーザーのホームディレクトリにインストールされます。私はcapistrano-rvm gemを使用しています。ソースコマンドはsshユーザーのbashrcにありますので、環境がロードされていると思います。 –
私はその仮定をテストすることを提案したい、rvmは非常に壊れやすいです。 –