LoginSignup
3
0

More than 3 years have passed since last update.

本番環境のコマンドを開発環境で実行してしまった場合の対処

Posted at

はじめに

今回は本番環境で行うコマンドを間違って開発環境で実行してしまいエラーが発生してしまったのでそうなってしまった理由や原因を調べていきます。

やってしまったこと

AWSでEC2のサーバーを立ち上げるために以下のコードを誤って開発環境で実行してしまった...

$ bundle install --path vendor/bundle --without test development

そこからbundle installやサーバーを立ち上げようとするとエラーが発生するようになりました。

bundle installでNokogiriがインストールできないエラー

Gem files will remain installed in
/home/vagrant/work/SMB/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9 for inspection.
Results logged to
/home/vagrant/work/SMB/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/nokogiri-1.10.9/gem_make.out

An error occurred while installing nokogiri (1.10.9), and Bundler cannot
continue.
Make sure that `gem install nokogiri -v '1.10.9' --source 'https://rubygems.org/'`
succeeds before bundling.

何が行われてしまったのか?

$ bundle install --path vendor/bundle --without test development

このコマンドでbundle installでオプションを付けている

  • --pathでインストール先をいつものパスではなくて指定したパスのディレクトリにインストールをしている(vendor/bundle)
    rubyはrbenvファイルにインストールをしなければいけないのにvendor/bundleにインストールをしてしまっている

  • --without(意味:除外します/抜きにする)
    今回だとtest developmentを除外します
    development(開発)環境なのにインストールしないのはマズい...

bundle installに一回でもオプションをつけるとbundleファイルがずっと覚えていてくれるのでずっとそのオプションになってしまう

原因!

bundle installにオプションを付けてしまったのが原因

解決策

bundleファイルの中身を修正

スクリーンショット 2020-11-22 10.50.33.png

.bundle/configファイルの中が先ほどbundle installした際のオプションが入っているのでそこを修正。

修正前

---
BUNDLE_PATH: "vendor/bundle"
BUNDLE_WITHOUT: "test:development:production"

修正後

---
BUNDLE_WITHOUT: "production"

これでまたうまく動くようになりました!

最後に

エラーが出た時はかなり焦りましたがしっかりしてしまったことを理解することが大事だと思いました。

またコマンド一つ一つが何をしているのか把握していくのが大事だと改めて知る機会になりました。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0