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

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

ただいまの
回答率

90.49%

  • Ruby

    7909questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails

    7465questions

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

  • Google API

    540questions

    Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

google cloud への rails アプリのdeployができない。

解決済

回答 1

投稿 編集

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

katoy

score 15285

https://cloud.google.com/ruby/getting-started/hello-world
に従って操作をしてみています。

rails アプリを google cloud に deploy をしてみようとするとエラーになります。

  • 実行コマンドとエラー

$ gcloud preview app deploy

イメージ説明

  • エラーログ画面

イメージ説明

  • 環境:
$ gcloud --version
Google Cloud SDK 105.0.0

app-engine-python 1.9.35
bq 2.0.24
bq-nix 2.0.24
core 2016.04.11
core-nix 2016.03.28
gcloud 
gsutil 4.18
gsutil-nix 4.18

$ sw_vers
ProductName:    Mac OS X
ProductVersion:    10.11.4
BuildVersion:    15E65

$ ruby --version
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]

Dockerfile は Mac ファイル上には存在していませんでした。
(find ~ | grep Dockefile を実行して,関係しそうな Dockerfile がないことを確認した)

そこで
$ gcloud preview app gen-config --custom
を実行して Dockerfile が生成させました。
そのファイル中には IF はありません。

...
FROM gcr.io/google_appengine/ruby

# Install 2.2.3
 if not already preinstalled by the base image
RUN cd /rbenv/plugins/ruby-build && \
    git pull && \
    rbenv install -s 2.2.3
 && \
    rbenv global 2.2.3
 && \
    gem install -q --no-rdoc --no-ri bundler --version 1.11
ENV RBENV_VERSION 2.2.3
...

この状態で
$ gcloud preview app deploy
を実行してもエラー内容は変化しませんでした。

  • 追記 2016-04-17 20:50
    テンプレートファイルを書き換えることで deploy できるようになりました。
    イメージ説明
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

0

こちらでも試してみましたが、ページの通りに
https://<your-project-id>.appspot.com
でアクセスするところまで確認できました。

エラーが出ているのが、Dockerfileの実行中のようなので、Dockerfileの内容を確認してみてはいかがでしょうか?

こちらでは、以下のようになっています。

-(略)-
FROM gcr.io/google_appengine/ruby

# Install ruby 2.2.3 if not already preinstalled by the base image
RUN cd /rbenv/plugins/ruby-build && \
    git pull && \
    rbenv install -s 2.2.3 && \
    rbenv global 2.2.3 && \
    gem install -q --no-rdoc --no-ri bundler --version 1.11.2 && \
    gem install -q --no-rdoc --no-ri foreman --version 0.78.0
ENV RBENV_VERSION 2.2.3
-(略)-

FROMの後に、IFという記述があるのではないかと思いますが、どうでしょうか?

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/04/17 17:33

    質問文に Dockerfile について調べたことを追記しました。

    キャンセル

  • 2016/04/17 19:04

    if not already preinstalled by the base image

    この行怪しいですが、改行コードなどおかしかったりしますか?
    Dockerfile書き換えた事がないので可能か分かりませんが、
    削除して実行することはできますか?

    キャンセル

  • 2016/04/17 19:31

    参考情報ですが、私の環境でも、気付いたらDockerfileは消えていました。
    気付いたら消えていたので、どういうタイミングかは分かりません。

    キャンセル

  • 2016/04/17 20:47

    おかげさまで deploy して、 https;//{.your-project-id}.appspot.com での表示ができました。

    "IF" でなくて "if" が Dockefile 中にあったのですね。
    ruby 環境用の Dockerfile の template を書き換えたら deploy できるようになりました、
    テンプレート中の {ruby_version} の部分で改行が入ってしまうようです。

    ruby_version 変数を設定している部分に改行コードを削除する処理を入れたら
    deloy ができるようになりました。
    (変更箇所を 質問文に追加しました)

    今回の現象は python や ruby の version の差が影響しているのかもしれません。
    ちなみに私の mac 上では次のものを使っています。

    $ python --version
    Python 2.7.11
    (brew でいれた)

    $ ruby --version
    ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]
    (rbenv で入れた)

    キャンセル

  • 2016/04/17 20:57

    解決してよかったです。
    参考までに、こちらの環境はWindows 10です。

    >ruby --version
    ruby 2.2.4p230 (2015-12-16 revision 53155) [i386-mingw32]
    (RailsInstaller 3.2.0を入れた)

    キャンセル

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

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

関連した質問

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

  • Ruby

    7909questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails

    7465questions

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

  • Google API

    540questions

    Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。