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

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

新規登録して質問してみよう
ただいま回答率
85.48%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails 5

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

Ruby

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

Ruby on Rails

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

3回答

9853閲覧

Railsでlocalhostに接続できない

KeiMaejima

総合スコア10

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails 5

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

Ruby

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

Ruby on Rails

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2018/11/10 16:12

rails sで正常に起動できているはずなのですが、localhostでアクセスができません。

shell

1$ curl localhost:3000 2curl: (52) Empty reply from server

shell

1$ rails s -b 0.0.0.0 2=> Booting Puma 3=> Rails 5.2.1 application starting in development 4=> Run `rails server -h` for more startup options 5Puma starting in single mode... 6* Version 3.12.0 (ruby 2.5.0-p0), codename: Llamas in Pajamas 7* Min threads: 5, max threads: 5 8* Environment: development 9* Listening on tcp://0.0.0.0:3000 10Use Ctrl-C to stop

Docker環境で開発をしており、Dockerのポートのフォワードは正常なようなので、Rails側に問題があると思われます。

shell

1$ docker-compose ps 2 Name Command State Ports 3-------------------------------------------------------------------------------- 4db_1 docker-entrypoint.sh postgres Up 0.0.0.0:5432->5432/tcp 5web_1 irb Up 0.0.0.0:3000->3000/tcp

原因について心当たりがある方がいましたら、ご教示いただけるとありがたいです。
よろしくお願いいたします。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

切り分けのために localhost ではなく IPv4 アドレスを直接指定してみてどうなるか試してみてください。

bash

1$ curl 127.0.0.1:3000

もしこれで解決する場合は IPv6 で名前解決されて失敗している可能性が高いのでサーバーのコマンドを次のものに変えてみてください。:: で指定すると tcp6 が対象のため IPv4/IPv6 両方にバインドされます。

bash

1$ rails s -b ::

投稿2018/11/10 16:19

chitoku

総合スコア1610

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KeiMaejima

2018/11/11 01:58

回答いただきありがとうございます。 IPv4アドレスにアクセスした場合も同様の実行結果になります。 $ curl 127.0.0.1:3000 curl: (52) Empty reply from serve また、上記の起動方法ですとエラーが出て起動できない状態です。 /usr/local/lib/ruby/2.5.0/uri/rfc3986_parser.rb:67:in `split': bad URI(is not URI?): tcp://:::3000 (URI::InvalidURIError)
guest

0

自己解決

これまでDockerコンテナ内に入ってRailsを起動していたのですが、docker-compose.ymlに下記command行を追記したところ無事アクセスできました。

yml

1 command: bundle exec rails s -p 3000 -b '0.0.0.0'

投稿2018/11/11 02:19

KeiMaejima

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Docker起動後にコンテナ内に入ってRailsを起動していたのですが、下記docker-compose.ymlにcommand行を追加して起動する方法に変更したところアクセスできました。

yml

1command: bundle exec rails s -p 3000 -b '0.0.0.0'

投稿2018/11/11 02:22

KeiMaejima

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問