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

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

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

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

Ruby on Rails

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

Docker

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

Q&A

1回答

865閲覧

DockerでRailsを使いたい

taiyaki29

総合スコア7

docker-compose

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

Ruby on Rails

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

Docker

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

0グッド

0クリップ

投稿2020/03/17 08:24

編集2022/01/12 10:55

https://github.com/ginpei/docker-rails-example
これに従って、

git clone git@github.com:ginpei/docker-rails-example.git cd docker-rails-example/ docker-compose up

としたが、
docker-rails-example_rails_1がUPしてくれません。
調べたところ、リセットしてもう一度upしたらよいと書いてあったのですがうまくいきません。

$ docker-compose ps ```と状態を確認しました。 結果↓

指定されたパスが見つかりません。
Name Command State Ports

docker-rails-example_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
docker-rails-example_rails_1 /bin/sh -c rm /app/tmp/pid ... Exit 1

```ここに言語を入力 rails_1 | rm: cannot remove '/app/tmp/pids/server.pid': No such file or directory rails_1 | /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.7/lib/bundler/definition.rb:31:in `build': /app/Gemfile not found (Bundler::GemfileNotFound) rails_1 | from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.7/lib/bundler.rb:127:in `definition' rails_1 | from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.7/lib/bundler.rb:93:in `setup' rails_1 | from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.7/lib/bundler/setup.rb:20:in `<top (required)>' rails_1 | from /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:133:in `require' rails_1 | from /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:133:in `rescue in require' rails_1 | from /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require' rails_1 | from /usr/local/bundle/bin/rails:15:in `<main>' docker-rails-example_rails_1 exited with code 1

の中の2行目の

/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.7/lib/bundler/definition.rb:31:in `build': /app/Gemfile not found (Bundler::GemfileNotFound)

Gemfileが見つからないよっていうが原因か思ってるのですが、どうすれば治るのかわかりません。

docer-composeかdockerfileに問題があるのかなと思い確認しましたが、
COPY ./app/Gemfile /app/Gemfile
というのがあり、なぜうまくいかないのかわかりませんでした。

以下2つのファイルです。

docker-compose.yml

YAML

1version: "3" 2 3services: 4 5 rails: 6 build: ./ 7 ports: 8 - "3000:3000" 9 volumes: 10 - ./app:/app 11 depends_on: 12 - db 13 14 db: 15 image: mysql 16 volumes: 17 - ./db:/var/lib/mysql 18 environment: 19 MYSQL_ALLOW_EMPTY_PASSWORD: "true" 20

dockerfile

1FROM rails:5.0.1 2 3RUN mkdir /app 4WORKDIR /app 5 6COPY ./app/Gemfile /app/Gemfile 7COPY ./app/Gemfile.lock /app/Gemfile.lock 8 9RUN bundle install 10CMD rm /app/tmp/pids/server.pid ; rails s 11

という感じです。
Docker Quickstart Terminalにすべて打ってます。ちゃんとクジラもみえてます。
どのようにすれば/app/Gemfileを見つけてくれるのでしょうか。

またfrom /usr/local/lib/ruby/gems/2.3.0...の/usr/ディレクトリがどこにあるのか探しても見つけられませんでした。

ーーー追記↓ーーー

cjuza@DESKTOP-QL9024D MINGW64 ~/docker_test $ ls

削除して空っぽであることを確認しました。

cjuza@DESKTOP-QL9024D MINGW64 ~/docker_test $ git clone https://github.com/ginpei/docker-rails-example.git Cloning into 'docker-rails-example'... remote: Enumerating objects: 141, done. Receiving objects: 85% (119/141)ed 0 (delta 0), pack-reused 141R Receiving objects: 100% (141/141), 178.02 KiB | 544.00 KiB/s, done. Resolving deltas: 100% (34/34), done. cjuza@DESKTOP-QL9024D MINGW64 ~/docker_test $ cd docker-rails-example/ cjuza@DESKTOP-QL9024D MINGW64 ~/docker_test/docker-rails-example (master) $ docker-compose up -d Creating network "docker-rails-example_default" with the default driver Creating docker-rails-example_db_1 ... done Creating docker-rails-example_rails_1 ... done cjuza@DESKTOP-QL9024D MINGW64 ~/docker_test/docker-rails-example (master) $ docker-compose ps 指定されたパスが見つかりません。 Name Command State Ports -------------------------------------------------------------------------------------------- docker-rails-example_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp docker-rails-example_rails_1 /bin/sh -c rm /app/tmp/pid ... Exit 1

エラーの詳細は同じです。

rails_1 | rm: cannot remove '/app/tmp/pids/server.pid': No such file or directory rails_1 | /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.7/lib/bundler/definition.rb:31:in `build': /app/Gemfile not found (Bundler::GemfileNotFound) rails_1 | from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.7/lib/bundler.rb:127:in `definition' rails_1 | from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.7/lib/bundler.rb:93:in `setup' rails_1 | from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.7/lib/bundler/setup.rb:20:in `<top (required)>' rails_1 | from /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:133:in `require' rails_1 | from /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:133:in `rescue in require' rails_1 | from /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require' rails_1 | from /usr/local/bundle/bin/rails:15:in `<main>' docker-rails-example_rails_1 exited with code 1

そもそもgitcloneをするファイルって決まってたりしますか?
現在/c/home/docker_test/でgitcloneしています。

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

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

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

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

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

guest

回答1

0

もう一度 git clone からやり直していただいて、 docker-compose up -d で起動を試してみるとうまくいくのではないでしょうか…?

- - - - ↓ 以下追記です ↓ - - - - -

docker-rails-exampleの中で実行 docker-rails-example_db_1と、docker-rails-example_rails_1のコンテナを停止させる $ docker-compose down docker-rails-exampleを削除 $ cd ../ $ rm -r docker-rails-example/ git cloneし直す $ git clone https://github.com/ginpei/docker-rails-example.git upし直す $ cd docker-rails-example/ $ docker-compose up -d Creating network "docker-rails-example_default" with the default driver Creating docker-rails-example_db_1 ... done Creating docker-rails-example_rails_1 ... done 起動できた $ docker-compose ps Name Command State Ports ---------------------------------------------------------------------------------------------- docker-rails-example_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp docker-rails-example_rails_1 /bin/sh -c rm /app/tmp/pid ... Up 0.0.0.0:3000->3000/tcp

投稿2020/03/18 00:03

編集2020/03/18 06:36
kyoruni

総合スコア93

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

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

taiyaki29

2020/03/18 05:31

docker-compose up -dでやってみましたが、全く同じ結果になりました。 docker-compose up の後に $ docker-compose exec rails rake db:create db:migrate db:seed をしたいのですが、 ERROR: No container found for rails_1 となってしまいます。docker-rails-example_rails_1がExit 1の状態なのが原因だと考えております
kyoruni

2020/03/18 06:54

「リセットしてもう一度upしたらよいと書いてあったのですがうまくいきません。」という部分がすごく気になったので(リセットというコマンドはないはずなので)、一度全部捨ててやり直すとうまくいきそうだなと思ったのですが…手元で試したところ問題なく起動できたので、手順を追記しました。
taiyaki29

2020/03/18 07:00

同じようにやってみたのですが、やっぱりExit 1の状態です。 質問のとこに追記したので、確認お願いしたいです。 丁寧な回答本当に感謝しております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問