1

さて、この厄介な問題が再び発生しましたが、解決策を見つけるのにまだ苦労しています。

問題

Gemfileがあります:

group :development do
  gem 'debugger'
end

本番環境にデプロイすると、gem'debugger'が見つからないため、Passengerが爆発します。

制約

  • opsは「debugger」をprodにインストールしません

  • bundle installまたはなどの展開後にシェルコマンドを実行することはできませんbundle --without development

  • 開発マシンは本番マシンとは異なるアーキテクチャであるため、bundle --without developmentローカルで実行してGemfile.lockまたは.bundle / * dirをコピーすることはできません(以前に提案されたように)。

  • 製品マシンはhttp://rubygems.orgから分離されています。gemをprodマシンにインストール/更新する唯一の方法は、opsに手動で要求することgem installです。

  • すべてのアプリのgemはprodマシンで共有されます(rvmなどはありません)

  • デプロイ後に実行されるレーキタスクがあります

現在のソリューション

  • 製品にリリースする前に、Gemfileをチェックして、開発グループをコメントアウトしてください。後でコメントを外します。リリースサイクルの位置に応じて繰り返します。(エラーを起こしやすい)

私が考えることができる可能な解決策

  • Gemfileの2つのバージョン(つまり、Gemfile.dev Gemfile.prod)を保持し、それらをrakeタスクを使用してGemfileにスワップ/cpします。
4

0 に答える 0