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