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

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

新規登録して質問してみよう
ただいま回答率
85.37%
MySQL

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

Ruby on Rails

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

Docker

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

Q&A

解決済

1回答

5974閲覧

【Docker】コンテナが起動しない

ryouya

総合スコア14

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/19 09:30

編集2020/02/19 10:35

お世話になっております。

Dockerのrailsコンテナが起動しません。
$ docker ps -aを入力するとstatusExited (1)となっていることが確認できます。

ContainerList

1$ docker ps 2CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3a166f5043d30 mysql "docker-entrypoint.s…" About an hour ago Up About an hour 3306/tcp, 33060/tcp mysql 4 5$ docker ps -a 6CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7d62d73438d92 rails "rails server -b 0.0…" 41 minutes ago Exited (1) About a minute ago rails 8a166f5043d30 mysql "docker-entrypoint.s…" 51 minutes ago Up 51 minutes 3306/tcp, 33060/tcp mysql

DockerNetwork

1$ docker network ls 2NETWORK ID NAME DRIVER SCOPE 334f010a36a2b test-network bridge local

DirectoryStructure

1docker 2├── rails 3│ ├── Dockerfile 4│ ├── Gemfile 5│ ├── Gemfile.lock 6│ ├── vendor 7│ └── config 8│ └── database.yml 9└── mysql 10 ├── Dockerfile 11 └── app.cnf

#####Docker/rails/

Dokcerfile

1#rails/Dockerfile 2FROM ruby:2.6 3 4RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \ 5 && apt-get install -y nodejs 6 7ENV APP_HOME /app 8 9WORKDIR $APP_HOME 10 11COPY Gemfile $APP_HOME/Gemfile 12COPY Gemfile.lock $APP_HOME/Gemfile.lock 13 14RUN bundle install 15 16RUN rails new . --database=mysql 17 18COPY ./config $APP_HOME/config 19 20EXPOSE 3000 21 22CMD ["rails", "server", "-b", "0.0.0.0"]

Gemfile

1source 'https://rubygems.org' 2gem 'rails', '5.2.3'
#Gemfile.lock #空白
#database.yml default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: root host: mysql development: <<: *default database: app_development test: <<: *default database: app_test production: <<: *default database: app_production username: app password: <%= ENV['APP_DATABASE_PASSWORD'] %>

#####Docker/mysql/

Dockerfile

1#mysql/Dockerfile 2FROM mysql:8.0 3COPY app.cnf /etc/mysql/conf.d/app.cnf
#app.cnf [mysqld] default_authentication_plugin= mysql_native_password
試したこと

コミットし、railsコンテナに入りました。

docker run --rm -it 604849687c9b8fa2b8c8200cab71a902aeafdd29f70eaf7381af683b01e1d758 bash root@f60c245ac592:/app#

コンテナリストにて、COMMANDrails server -b 0.0.0.0となったためコンテナ内にて入力。

container

1root@4f06af994e97:/app# rails server -b 0.0.0.0 2Could not find gem 'mysql2 (>= 0.4.4, < 0.6.0)' in any of the gem sources listed in your Gemfile. 3Run `bundle install` to install missing gems.

gem mysql2がインストールできていないとのことなので、

host

1sudo gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/' 2Building native extensions. This could take a while... 3Successfully installed mysql2-0.5.2 4Parsing documentation for mysql2-0.5.2 5Done installing documentation for mysql2 after 0 seconds 61 gem installed

インストールしましたが、状況変わりませんでした。

参考サイトURL

https://qiita.com/galigalikun/items/a2436e07cf78713cf4b6 https://kitsune.blog/docker-network

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

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

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

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

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

ryouya

2020/02/27 09:35

ご連絡遅れてしまいすみません。 ご教授ありがとうございます、 添付していただいたURLを参考に確認をとってみます。
guest

回答1

0

ベストアンサー

database.ymlを見るにDocker-composeでmysqlを名前解決することが前提になってるようです。
Docker-composeを調べてDocker-compose.ymlを作成して起動してください。

また rails server
が立ち上がるにはMySQLサーバーに接続できて、データーベースが作成されていて、マイグレーションが完了してる必要があります。この場合どれもできてないので、単にエラーが発生がして終了してるだけです。
コンテナは指定したコマンドのプロセスが終了するとストップします。

なんらかの理由でコンテナを起動しておきたいだけなら、すでにやってるようにbashを叩いておけばいいです。

間違いと勘違いされてる箇所が多すぎて指摘しきれないので

ここなんかを参考に全てやりなおしたほうが早いです。
https://qiita.com/azul915/items/5b7063cbc80192343fc0

投稿2020/02/28 04:56

ozroro

総合スコア97

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

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

ryouya

2020/03/04 02:39

ご返答遅くなってしまい申し訳ございません。 情報の提供ありがとうございます。 ご参考にさせていただき1からやり直したいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問