質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • Ruby on Rails

    7013questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • 文字コード

    200questions

    文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

  • Capistrano

    112questions

    Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

CapistranoでRailsアプリをEC2にデプロイする際にinvalid byte sequenceエラー

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,072

ooo

score 18

パーフェクトRubyOnRailsを読みながら環境を作っていたのですが、
vagrant上で動作しているプロジェクトをEC2(ubuntuインスタンス)に
Capistranoでデプロイしようとした際、invalid byte sequenceが発生してしまいました。

ググっていたところ、文字コードのエラーであることと、
文字コードエラーが発生しているファイルに
#encoding: utf-8 
の記述をすればいいことは理解できたのですが、
どのファイルでUS-ASCIIを使用しているのか見つけられません。
ログは最下部に貼り付けておりますが、スタックトレースに吐かれているのは、
エラーを出力する部分のみのように見受けられます。

どのようにすればUS-ASCIIを使用しているファイルを見つけることができるのか、
そもそも解決方法が違う!などございましたら、ぜひご指南いただければ幸いです。

どうぞよろしくお願いいたします。

※追記
そもそも、bundlerがruby1.9を読みに行っていることが問題な気もしてきました。
というのも、ruby1.9のデフォルトエンコーディングがUS-ASCIIだそうです。
ので、ひとまずbundlerが利用するrubyのバージョン指定方法を現在調べています。


/var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/trace_output.rb:16:in `block in trace_on': invalid byte sequence in US-ASCII (ArgumentError)
    from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/trace_output.rb:14:in `map'
    from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/trace_output.rb:14:in `trace_on'
    from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/application.rb:376:in `trace'
    from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/application.rb:222:in `display_exception_message_details'
    from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/application.rb:209:in `display_exception_details'
    from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/application.rb:198:in `display_error_message'
    from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/application.rb:185:in `rescue in standard_exception_handling'
    from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling'
    from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/application.rb:75:in `run'
    from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/bin/rake:33:in `<top (required)>'
    from /var/www/awesome-events/shared/bundle/ruby/1.9.1/bin/rake:23:in `load'
    from /var/www/awesome-events/shared/bundle/ruby/1.9.1/bin/rake:23:in `<main>'
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

【原因】
cap経由で利用するbundleは、
rbenvでいうところのsystem(1.9.1)側のbundlerのパスを参照してしまっており、
そのため、system(1.9.1)のrubyを参照したbundlerでrakeタスクを実行した結果、
US-ASCIIエラーを起こしていました。

【解決方法】
'capistrano/rbenv'で、
capが利用するbundlerを明示的に変えてやることによって解決しました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Ruby on Rails

    7013questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • 文字コード

    200questions

    文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

  • Capistrano

    112questions

    Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。