問題タブ [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.

0 投票する
1 に答える
876 参照

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

0 投票する
1 に答える
93 参照

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 ジョブには適切な設定があるようです。

未設定のままにした変数はありますか?

0 投票する
1 に答える
583 参照

ruby-on-rails - カピストラーノ: カピストラーノのタスクを共有するには?

ステージング スクリプトと本番デプロイ スクリプトの間でいくつかの共有タスクがあります。共有タスクを作成するベスト プラクティスは何ですか? /lib/capistrano/tasksたとえば、それらを別のファイルに移動する必要がありますか? もしそうなら、どうすればいいですか?ファイル拡張子とは何か、また、これらのタスクに名前を付けてcapコマンドからアクセスする方法を教えてください。

0 投票する
0 に答える
54 参照

ruby - さまざまなパラメーターを使用した Capistrano マルチサーバー展開

bin/app.rbRubyスクリプトを複数のサーバーにデプロイしたい

zone1.myapp.comzone2.myapp.com& zone3.myapp.comCapistrano 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

カピストラーノでこれを達成する方法はありますか?

0 投票する
0 に答える
220 参照

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 のバージョンは次のとおりです。

私はエラーの原因を少し踏みにじっています。

0 投票する
1 に答える
1540 参照

ruby-on-rails - カピストラーノ投げ装置 secret_key が設定されていません

Capistrano 3.1.4 と capfile を使用しています

figaro と devise を使用するように gem をセットアップしました。ボックスに ssh して実行すると (.bash_profile export RAILS_ENV=production で)

しかし、私が実行すると:

デバイスの秘密鍵が設定されていないというエラーが表示されます。サーバーで bash -login が実行されていないためですか?

0 投票する
1 に答える
338 参照

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} を実際のパスに置き換えます)、正常に動作します。

私が試したこと:

  1. 実行コマンドを次のように書き換えます。

rvm use 2.1.5@deployer && sass #{release_path}/styles/test.scss #{release_path}/styles/test.css

  1. gemsetをロードしてsassコマンドを実行する、デプロイヤーユーザーがアクセスできるbashスクリプトを作成します(任意のディレクトリでサーバーにログインしているときに新しいスクリプトを実行すると機能し、capistranoタスクから呼び出された場合は機能しません)

  2. capistrano-rvm プラグイン (Gemfile に追加、Capfile で必要) を使用して RVM gemset を設定します - コマンドを実行する前に gemset をロードすることを期待します。

私は Rails アプリのデプロイに Capistrano を何度も使用しており、プリコンパイルなどを処理するアセット プラグインを常に使用しています。これは、PHP アプリのデプロイに使用した最初のプロジェクトであり、手動でRVM でサーバーにインストールされた ruby​​gem を使用する capistrano タスク。

特定の gem/gemset に依存するタスクを実行することはできますか? デフォルトの Rails プラグインを使用せずに...

どんな助けでも大歓迎です。

ありがとう、JD

0 投票する
0 に答える
129 参照

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 展開の問題を解決するにはどうすればよいですか?