問題タブ [rvm-capistrano]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 本番環境の Rails で 502 エラーがスローされる
以下を使用して、本番モードのテスト アプリケーションを VPN にデプロイしようとしています。
- デジタルオーシャンの新しくきれいな液滴
- Ubuntu 14.10
- レール 4.2.0
- ルビー 2.1.5
- RVM
- PostgreSQL
- ユニコーン
- カピストラーノ 3.2.1
- ニンクス
アプリは正常にデプロイされましたが、500.html がスローされました。
アプリは移行を行い、パブリック ディレクトリにアセットを取得しました。展開中およびログ (production.log、unicorn_error.log、unicorn.log) にエラーはありませんでした。ユニコーンの労働者をチェックps aux|grep unicorn
したところ、数人の労働者がそれに取り組んでいました。本番環境の Rails コンソールも動作していたので、PostgreSQL との接続がありました。
ローカル PC で実稼働環境でアプリを起動しようとしたところ、rake RAILS_ENV=production assets:precompile
.
問題を見つけるのを手伝ってください。問題の原因を特定するにはどうすればよいですか? それは私の展開コードにありますか、それともサーバーの設定にありますか?
Nginx 設定 /etc/nginx/sites-available/default
私が使用するGemfileで
/config/deploy.rb
/config/deploy/production.rb
/config/unicorn/production.rb
ruby-on-rails-3 - capistrano3 タスクが gemfile を保持しない
rvm1-capistrano を使用して Capistrano を v3 に更新しようとしていますが、gemset でエラーが発生します。
Capfile の関連セクション:
私の deploy.rb は次のようになります。
その他の設定は、host、repo_url などです。rake assets:precompile タスクは、ジョブが適切な gemset を見つけられないため、次のエラーで失敗します。
Gemfile は、メイン セクションで gem (カスタム ビルドされたエンジン) を指定します。
リモートサーバーで手動で実行したbundle install
ので、gemset が実際にはリモートサーバー上にあることがわかりました。
実行cap customenv rvm1:check
して、次の出力を受け取りました。
したがって、capistrano ジョブには適切な設定があるようです。
未設定のままにした変数はありますか?
ruby-on-rails - カピストラーノ: カピストラーノのタスクを共有するには?
ステージング スクリプトと本番デプロイ スクリプトの間でいくつかの共有タスクがあります。共有タスクを作成するベスト プラクティスは何ですか? /lib/capistrano/tasks
たとえば、それらを別のファイルに移動する必要がありますか? もしそうなら、どうすればいいですか?ファイル拡張子とは何か、また、これらのタスクに名前を付けてcap
コマンドからアクセスする方法を教えてください。
ruby - さまざまなパラメーターを使用した Capistrano マルチサーバー展開
bin/app.rb
Rubyスクリプトを複数のサーバーにデプロイしたい
zone1.myapp.com
、zone2.myapp.com
& zone3.myapp.com
Capistrano v3 を使用。展開後、そのゾーンに固有のパラメーターを持つデーモンとして実行する必要があります。つまり...
zone1
実行する必要がありますbundle exec ruby bin/app.rb zone1
zone2
実行する必要がありますbundle exec ruby bin/app.rb zone2
zone3
実行する必要がありますbundle exec ruby bin/app.rb zone3
カピストラーノでこれを達成する方法はありますか?
ruby-on-rails - Capistrano で Thin デーモンを再起動しています: エラー: /usr/bin/env: ruby_executable_hooks: No such file or directory
この単純なコマンドを、レールを使用したカピストラーノの展開に含めました。
しかし問題は、デプロイ時にこのエラーが発生することです
/usr/bin/env: ruby_executable_hooks: そのようなファイルやディレクトリはありません
サーバーで手動で /etc/rc.d/thin restart と入力すると、実際には正常に動作するため、これは奇妙です。
これを追加したことは注目に値するかもしれません
カピストラーノファイルに :default_shell, '/bin/bash -l' を設定しますが、同じユーザーでサーバーに手動で入力すると、シンリスタートを機能させることができるので奇妙です。
Gem のバージョンは次のとおりです。
私はエラーの原因を少し踏みにじっています。
ruby-on-rails - カピストラーノ投げ装置 secret_key が設定されていません
Capistrano 3.1.4 と capfile を使用しています
figaro と devise を使用するように gem をセットアップしました。ボックスに ssh して実行すると (.bash_profile export RAILS_ENV=production で)
しかし、私が実行すると:
デバイスの秘密鍵が設定されていないというエラーが表示されます。サーバーで bash -login が実行されていないためですか?
ruby - Capistrano 3 のタスクで RVM が見つかりません
Capistrano 3 を使用して数か月間 PHP アプリをデプロイしてきましたが、うまく機能しています。最近、スタイルシートに Sass の使用を開始することを決定し、現在これらの変更を展開しようとしています。
Sass gem を使用して scss ファイルを css に変換する残りのデプロイ作業が完了した後に実行されるタスクを作成しようとしています。
サーバーで RVM を使用しており、sass gem を特定の gemset にインストールしています。プロジェクト ルートには、capistrano が作成する「現在の」ディレクトリに cd したときに正しい gemset をロードする .rvmrc ファイルもあります。
デプロイすると、新しいタスクが失敗し、sass が見つからないというメッセージが表示されます。
Capistrano でデプロイするために使用されるのと同じユーザーとしてサーバーにログインし、「現在の」ディレクトリに cd して、タスクで同じコマンドを実行し (#{release_path} を実際のパスに置き換えます)、正常に動作します。
私が試したこと:
- 実行コマンドを次のように書き換えます。
rvm use 2.1.5@deployer && sass #{release_path}/styles/test.scss #{release_path}/styles/test.css
gemsetをロードしてsassコマンドを実行する、デプロイヤーユーザーがアクセスできるbashスクリプトを作成します(任意のディレクトリでサーバーにログインしているときに新しいスクリプトを実行すると機能し、capistranoタスクから呼び出された場合は機能しません)
capistrano-rvm プラグイン (Gemfile に追加、Capfile で必要) を使用して RVM gemset を設定します - コマンドを実行する前に gemset をロードすることを期待します。
私は Rails アプリのデプロイに Capistrano を何度も使用しており、プリコンパイルなどを処理するアセット プラグインを常に使用しています。これは、PHP アプリのデプロイに使用した最初のプロジェクトであり、手動でRVM でサーバーにインストールされた rubygem を使用する capistrano タスク。
特定の gem/gemset に依存するタスクを実行することはできますか? デフォルトの Rails プラグインを使用せずに...
どんな助けでも大歓迎です。
ありがとう、JD
ruby-on-rails - Bundler のアップグレードとソース ブロックの追加後の capistrano デプロイ エラー
私のプロジェクトの最新ブランチには、Bundler 1.10.5 へのアップグレードに基づく Gemfile への変更が含まれています。特に、2 つの内部 gem のソース ブロックを使用しています。これは、capistrano がエラーをスローしてデプロイをロールバックするテスト サーバーにデプロイしようとしたときに問題の原因のようです。
コマンド生成エラー:
エラー メッセージ (プライベート データは匿名化されていますが、それ以外は元のメッセージと同じです):
Gemfile
次の行が含まれます:
常識とこの回答へのコメントに基づいて、テストサーバーで実行gem install bundler -v '1.10.5'
してみましたが、インストールされているように見えます (インストールメッセージは成功を示しgem which bundler
、新しいバージョン番号を含むパスを返します) が、展開エラーに変化はありませんでした.
Gemfile
との両方Gemfile.lock
が git で追跡され、サーバーにデプロイされます (この回答に従って)。ディレクトリは存在しません(この回答vendor/cache
に従って)。すべてがローカルでスムーズに動作し、Gemfile にソース ブロックがないブランチのデプロイは、ほんの数時間前にスムーズに完了しました。この Bundler 展開の問題を解決するにはどうすればよいですか?