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

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

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

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

Docker

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

Q&A

解決済

2回答

1344閲覧

docker-compose up でコンテナを起動したが、localhost で開けない

majikadezou

総合スコア34

docker-compose

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

Docker

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

0グッド

0クリップ

投稿2020/02/25 10:19

dockerを使って、既存のrailアプリをコンテナで動かしたいと考えています。

dockerfile
docker-composr.yml でアプリとdbの連携をしました。

docker-compose up で、うまく起動できたと思ったのですが、localhost:3000で接続確認をしようとしても、接続を拒否されてしまいます。

ターミナル app_1 | Puma starting in single mode... app_1 | * Version 4.3.1 (ruby 2.5.1-p57), codename: Mysterious Traveller app_1 | * Min threads: 5, max threads: 5 app_1 | * Environment: development app_1 | * Listening on tcp://0.0.0.0:3000 app_1 | Use Ctrl-C to stop
dockerfile FROM ruby:2.5.1 RUN apt-get update && \ apt-get install -y mysql-client nodejs vim --no-install-recommends && \ rm -rf /var/lib/apt/lists/* RUN mkdir /myproject WORKDIR /myproject ADD Gemfile /myproject/Gemfile ADD Gemfile.lock /myproject/Gemfile.lock RUN gem install bundler RUN bundle install ADD . /myproject
docker-compose version: '2' services: db: image: mysql:5.6 environment: MYSQL_DATABASE: dbname MYSQL_ROOT_PASSWORD: P@ssw0rd volumes: - mysql-data:/var/lib/mysql ports: - "4306:3306" app: tty: true stdin_open: true build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/myproject - bundle:/usr/local/bundle links: - db volumes: mysql-data: bundle:

database.yml

default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:password
host: db

気になったのが、データベースがの部分ですが、エラーはでていないので、問題ないと思うのですが。。。 PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! db_1 | To do so, start the server, then issue the following commands: db_1 | db_1 | /usr/bin/mysqladmin -u root password 'new-password' db_1 | /usr/bin/mysqladmin -u root -h f210024dcd38 password 'new-password' db_1 | db_1 | Alternatively you can run: db_1 | db_1 | /usr/bin/mysql_secure_installation db_1 | db_1 | which will also give you the option of removing the test db_1 | databases and anonymous user created by default. This is db_1 | strongly recommended for production servers. db_1 | db_1 | See the manual for more instructions. db_1 | db_1 | Please report any problems at http://bugs.mysql.com/ db_1 | db_1 | The latest information about MySQL is available on the web at db_1 | db_1 | http://www.mysql.com db_1 | db_1 | Support MySQL by buying support/licenses at http://shop.mysql.com db_1 | db_1 | Note: new default config file not created. db_1 | Please make sure your config file is current

どなたか、原因が分かる方、いらっしゃいませんか?

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

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

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

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

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

TaichiYanagiya

2020/02/25 22:47

Docker ホストから localhost:3000 で app:3000 にアクセスしたいのであれば、ports で 3000 を公開する必要があるのでは?
majikadezou

2020/02/26 06:19

ありがとうございます。 ポート開放して解決しました!
guest

回答2

0

自己解決

外部から接続するためにポートを開く必要があることを知りませんでした。
公開で解決しました。

投稿2020/02/26 06:22

majikadezou

総合スコア34

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

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

0

接続を拒否されるとは、具体的にどんな状況でしょうか?
(エラーメッセージは出ているか、エラー時のスクリーンショットがあるかなど)
あればそれらの情報がほしいのと、無いのであればそういったエラーは出ていないという情報があると回答しやすいです。


今の情報からだと、以下の2つが一致していないのが気になりました。

  • docker-compose.yml で指定している MySQL のパスワード MYSQL_ROOT_PASSWORD
  • database.ymlで指定しているパスワード password

このあたりの設定を確認して、Rails アプリケーションからデータベースに適切に接続できているか確認してみてください。

投稿2020/02/25 13:27

編集2020/02/25 14:36
shgtkshruch

総合スコア665

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

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

majikadezou

2020/02/26 06:25

ありがとうございます。 確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問